当我尝试设置欧元支付时,PayPal 使用 Braintree SDK 时出现问题。无法调试问题

Problem with PayPal using Braintree SDK when I try set up Payments in Euro. Can't debug problem

  1. 我创建了启用了欧元、美元和波兰兹罗提的 PayPal 沙盒企业帐户。

  2. 我创建了 Sandbox REST API 链接到上面的帐户。

  3. 我在帐户 -> 我的用户中链接了我在 Braintree 沙盒 ( https://sandbox.braintreegateway.com/ ) 中的 Paypal 帐户。

  4. 我在设置 -> 处理 -> PayPal 中输入了 REST API 键。

  5. 我确定我的默认商品是波兰兹罗提货币。

  6. 我使用 Braintree .NET 文档为 ClientToken 和 ProcessingNounce 创建了后端方法。

  7. 我使用 Braintree 文档中的 dropin 准备了前端。

代码:

braintree.dropin.create({
                authorization: result.token,
                container: '#dropin-braintree-container',
                paypal: {
                    flow: 'checkout',
                    amount: '@Model.TransactionDetails.CalculatedTotalPrice',
                    currency: 'PLN'
                }, function (createErr, instance) { ... /* button listener and processing stuff here */ ... });

上面的代码工作正常!我可以使用 Paypal 客户欧元账户、Paypal 客户 PLN、Braintree 信用卡等完成交易

客户告诉我他不想接收以波兰兹罗提货币支付的款项,而是接收欧元付款,这让我遇到了麻烦。

我改线了:

currency: 'EUR'

而且我将 Braintree 中的默认商品更改为 EUR(不更改商品我得到 "The currency of this PayPal transaction must match the currency of the merchant account (2091)"

现在,当我尝试使用任何 PayPal 帐户和其中的任何选项付款时,我得到 "The customer's bank is unwilling to accept the transaction. For credit/debit card transactions, the customer will need to contact their bank for more details regarding this generic decline; if this is a PayPal transaction, the customer will need to contact PayPal. (Declined: 2046)"。我只能使用braintree样本卡完成交易。

无法调试,API PayPal 中的调用告诉我有问题,但我无法点击查看详细信息:

当我在前端代码中切换回 PLN 并在 Braintree 中切换回默认 PLN 商家时,交易再次正常进行。

我需要这方面的帮助,无法调试它。如果我缺少一些特定于 EUR 货币的参数或者它的 PayPal 错误,我想知道。

提前感谢您的帮助!

编辑: 我已经深入挖掘,我在 Sandbox Api Calls page 上的 Chrome 开发工具中检查了 POST 请求以获取详细信息:

{
   "create_time":"30 Jan 2019 05:07:53",
   "correlation_id":"304384c194ece",
   "resource_id":"PAY-6JB373950C8856440LRI2DGI",
   "api_response":{
      "additional_properties":"xxxxxx",
      "body":{
         "debug_id":"304384c194ece",
         "details":"xxxxxx",
         "information_link":"https://developer.paypal.com/docs/api/payments/#errors",
         "message":"The request was refused",
         "name":"TRANSACTION_REFUSED"
      },
      "duration_time":"xxxxxx",
      "header":{
         "APPLICATION_ID":"xxxxxx",
         "CALLER_ACCT_NUM":"LG4QN5BPXPW7N",
         "Content-Language":"*",
         "Date":"Wed, 30 Jan 2019 13:07:57 GMT",
         "paypal-debug-id":"304384c194ece"
      },
      "status":400
   },
   "client_id":"ASKLWoEWn6q9ZNqkzpj7pulX4x0h9iD-Fy6_yzyfKaiNlHz7VMVwgPlk6Hpaq5-pG3_pcA84qIzOEx9q",
   "api_request":{
      "additional_properties":"xxxxxx",
      "body":{
         "payer_id":"CCD9AZVEJK8UN",
         "transactions":[
            {
               "amount":{
                  "currency":"EUR",
                  "total":"22.00"
               },
               "payment_options":{
                  "allowed_payment_method":"IMMEDIATE_PAY"
               }
            }
         ]
      },
      "header":{
         "accept":"application/json",
         "accept-encoding":"gzip, deflate",
         "authorization":"xxxxxx",
         "client-auth":"No cert",
         "content-length":"152",
         "content-type":"application/json",
         "host":"api.sandbox.paypal.com",
         "paypal-client-metadata-id":"EC-6DS628633U9315453",
         "paypal-request-id":"1548853672_qc053cdc",
         "pp_remote_addr":"xxxxxx",
         "user-agent":"Braintree/1.0",
         "x-ads-si-context":"xxxxxx",
         "x-newrelic-id":"UAMPU1RWGwEJVlNaAQk=",
         "x-newrelic-transaction":"PxQFUVYHXAtTAlhWBwUCUAUHFB8EBw8RVU4aBAoOUgYBXAAFCARRVVMAA0NKQQ8FCFADA1UIFTs=",
         "x-pp-ads-performed":"xxxxxx",
         "x-pp-ads-request-id":"xxxxxx",
         "x-pp-ads-usecase-id":"xxxxxx",
         "x-pp-anomaly-detection-mechanism":"xxxxxx",
         "x-pp-corrid":"304384c194ece",
         "x-pp-idempotencyid":"304384c194ece_1548853673",
         "x-pp-silover":"xxxxxx",
         "x-pp-slingshot-targetapp":"apiplatformproxyserv",
         "x-request-id":"xxxxxx",
         "x-slr-orig-script_uri":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6JB373950C8856440LRI2DGI/execute"
      },
      "method":"POST"
   },
   "account_number":"2117554163912301260",
   "http_status":400,
   "url":"/v1/payments/payment/PAY-6JB373950C8856440LRI2DGI/execute"
}

根据 docs 这个错误基本上可以是任何东西。

EDIT2:

PLN 成功付款请求示例:

{  
         "create_time":"30 Jan 2019 06:58:59",
         "correlation_id":"7cabc2b46e5bb",
         "resource_id":"PAY-305699707J366792MLRI3XEA",
         "api_response":{  
            "additional_properties":"xxxxxx",
            "body":{  
               "cart":"29R95576JY4406634",
               "create_time":"2019-01-30T14:59:03Z",
               "id":"PAY-305699707J366792MLRI3XEA",
               "intent":"sale",
               "links":[  
                  {  
                     "href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-305699707J366792MLRI3XEA",
                     "method":"GET",
                     "rel":"self"
                  }
               ],
               "payer":{  
                  "payer_info":{  
                     "country_code":"DE",
                     "email":"*****",
                     "first_name":"*****",
                     "last_name":"*****",
                     "payer_id":"CCD9AZVEJK8UN"
                  },
                  "payment_method":"paypal",
                  "status":"VERIFIED"
               },
               "state":"approved",
               "transactions":[  
                  {  
                     "amount":{  
                        "currency":"PLN",
                        "details":"xxxxxx",
                        "total":"22.00"
                     },
                     "payee":{  
                        "email":"*****",
                        "merchant_id":"LG4QN5BPXPW7N"
                     },
                     "payment_options":{  
                        "allowed_payment_method":"IMMEDIATE_PAY",
                        "recurring_flag":"xxxxxx",
                        "skip_fmf":"xxxxxx"
                     },
                     "related_resources":[  
                        {  
                           "sale":{  
                              "amount":{  
                                 "currency":"PLN",
                                 "details":{  
                                    "subtotal":"22.00"
                                 },
                                 "total":"22.00"
                              },
                              "create_time":"2019-01-30T14:59:02Z",
                              "id":"4AK709636U844620F",
                              "links":[  
                                 {  
                                    "href":"https://api.sandbox.paypal.com/v1/payments/sale/4AK709636U844620F",
                                    "method":"GET",
                                    "rel":"self"
                                 },
                                 {  
                                    "href":"https://api.sandbox.paypal.com/v1/payments/sale/4AK709636U844620F/refund",
                                    "method":"POST",
                                    "rel":"refund"
                                 },
                                 {  
                                    "href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-305699707J366792MLRI3XEA",
                                    "method":"GET",
                                    "rel":"parent_payment"
                                 }
                              ],
                              "parent_payment":"PAY-305699707J366792MLRI3XEA",
                              "payment_mode":"INSTANT_TRANSFER",
                              "protection_eligibility":"ELIGIBLE",
                              "protection_eligibility_type":"ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE",
                              "state":"completed",
                              "transaction_fee":{  
                                 "currency":"PLN",
                                 "value":"2.21"
                              },
                              "update_time":"2019-01-30T14:59:02Z"
                           }
                        }
                     ]
                  }
               ]
            },
            "duration_time":"xxxxxx",
            "header":{  
               "APPLICATION_ID":"xxxxxx",
               "CALLER_ACCT_NUM":"LG4QN5BPXPW7N",
               "Content-Language":"*",
               "Date":"Wed, 30 Jan 2019 14:59:03 GMT",
               "paypal-debug-id":"7cabc2b46e5bb"
            },
            "status":200
         },
         "client_id":"ASKLWoEWn6q9ZNqkzpj7pulX4x0h9iD-Fy6_yzyfKaiNlHz7VMVwgPlk6Hpaq5-pG3_pcA84qIzOEx9q",
         "api_request":{  
            "additional_properties":"xxxxxx",
            "body":{  
               "payer_id":"CCD9AZVEJK8UN",
               "transactions":[  
                  {  
                     "amount":{  
                        "currency":"PLN",
                        "total":"22.00"
                     },
                     "payment_options":{  
                        "allowed_payment_method":"IMMEDIATE_PAY"
                     }
                  }
               ]
            },
            "header":{  
               "accept":"application/json",
               "accept-encoding":"gzip, deflate",
               "authorization":"xxxxxx",
               "client-auth":"No cert",
               "content-length":"152",
               "content-type":"application/json",
               "host":"api.sandbox.paypal.com",
               "paypal-client-metadata-id":"EC-29R95576JY4406634",
               "paypal-request-id":"1548860338_ae402q2s",
               "pp_remote_addr":"xxxxxx",
               "user-agent":"Braintree/1.0",
               "x-ads-si-context":"xxxxxx",
               "x-newrelic-id":"UAMPU1RWGwEJVlNaAQk=",
               "x-newrelic-transaction":"PxRUBAIHCwsDXFJXVQdVB1YAFB8EBw8RVU4aVFxbUFQCVg9WCQdSA11UBUNKQQ8FCFADA1UIFTs=",
               "x-pp-ads-performed":"xxxxxx",
               "x-pp-ads-request-id":"xxxxxx",
               "x-pp-ads-usecase-id":"xxxxxx",
               "x-pp-anomaly-detection-mechanism":"xxxxxx",
               "x-pp-corrid":"7cabc2b46e5bb",
               "x-pp-idempotencyid":"7cabc2b46e5bb_1548860339",
               "x-pp-silover":"xxxxxx",
               "x-pp-slingshot-targetapp":"apiplatformproxyserv",
               "x-request-id":"xxxxxx",
               "x-slr-orig-script_uri":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-305699707J366792MLRI3XEA/execute"
            },
            "method":"POST"
         },
         "account_number":"2117554163912301260",
         "http_status":200,
         "url":"/v1/payments/payment/PAY-305699707J366792MLRI3XEA/execute"
      }

我重复了:

1. 我创建了启用了欧元、美元和波兰兹罗提的 PayPal 沙盒企业帐户。

2. 我创建了 Sandbox REST API 链接到上面的帐户。

4. 我在设置 -> 处理 -> PayPal 中输入了 REST API 键。 (在 Braintree 沙箱中)

现在可以使用了。我仔细检查过,设置与以前完全相同。我记得在 1 步骤中我稍后添加了欧元货币,所以它可能是某种 PayPal 错误。或者 REST API 应用程序不会更新帐户的货币设置。