PHP Braintree 网关 API

Posted

技术标签:

【中文标题】PHP Braintree 网关 API【英文标题】:PHP Braintree Gateway API 【发布时间】:2020-04-04 04:10:51 【问题描述】:

请耐心等待,我正在尝试为我的 wordpress 预订系统创建一个 Braintree 网关,但不了解 php。我已经从 Braintree 下载了 php 库文件,并使用下面的代码实现了 api 连接区域和创建事务。此代码是从另一个网关获取和调整的!这是一个很好的使用方法吗?这行得通吗?

我的代码

                        $config = new Braintree\Configuration();
                        $config->environment($api_keys_merchant_id);
                        $config->merchantId(trim($api_keys_merchant_id));
                        $config->publicKey(trim($api_keys_public_key));
                        $config->privateKey(trim($api_keys_private_key));
                        $gateway = new Braintree\Gateway($config);

                        // Create transaction
                        $result = $gateway->transaction()->sale([
                        'amount' => $price,
                        'paymentMethodNonce' => 'nonceFromTheClient',
                              'options' => [ 'submitForSettlement' => true ]]);

                        if ($result->success) 
                              print_r("success!: " . $result->transaction->id);
                        else if ($result->transaction) 
                              print_r("Error processing transaction:");
                              print_r("\n  code: " . $result->transaction->processorResponseCode);
                              print_r("\n  text: " . $result->transaction->processorResponseText);
                        else 
                              print_r("Validation errors: \n");
                              print_r($result->errors->deepAll());
                      ```

【问题讨论】:

什么是错误来了,当你实现这个时,请告诉解释确切的错误 使用我的沙盒帐户时得到的错误是 field_invalid_currency 【参考方案1】:

就个人而言,我不明白问题是什么,所以如果有的话,请说明。在调整方面,从随附的代码示例中,我会说:

不要引用未知变量或共享它们的上下文(例如:$parsedCredentials 已初始化但未使用;还有什么是 $request?)

在文件顶部使用“use”语句而不是使用 FQCN;它使您更容易理解依赖关系是什么以及代码的作用。

【讨论】:

如何实现 Braintree PHP 库的问题 1. 连接到 api,2. 创建支付/交易或提交成功或失败结果的交易。以上代码不是完整代码。【参考方案2】:
$gateway = new Braintree_Gateway([
    'environment' => $api_keys_merchant_id,
    'merchantId' => trim($api_keys_merchant_id),
    'publicKey' => 'use_your_public_key',
    'privateKey' => 'use_your_private_key'
]);

$result = $gateway->transaction()->sale([
                        'amount' => $price,
                        'paymentMethodNonce' => 'nonceFromTheClient',
                        'options' => [ 'submitForSettlement' => true ]]);

                        if ($result->success) 
                              print_r("success!: " . $result->transaction->id);
                        else if ($result->transaction) 
                              print_r("Error processing transaction:");
                              print_r("\n  code: " . $result->transaction->processorResponseCode);
                              print_r("\n  text: " . $result->transaction->processorResponseText);
                        else 
                              print_r("Validation errors: \n");
                              print_r($result->errors->deepAll());
                     

【讨论】:

以上是关于PHP Braintree 网关 API的主要内容,如果未能解决你的问题,请参考以下文章

Google Pay API:Braintree 网关配置

Braintree 支付网关 - 获取客户信息

Braintree 支付网关 - 获取客户的订阅详情

如何在flutter中获得braintree支付网关的nonce?

Braintree 支付网关 - 与 Classic ASP 集成

关于 Braintree 支付网关与 Java 的集成