Проблема с PayPal при использовании Braintree SDK, когда я пытаюсь настроить платежи в евро.Не могу отладить проблему - PullRequest
0 голосов
/ 31 января 2019
  1. Я создал PayPal Sandbox Business Account с поддержкой EUR, USD и PLN.

  2. Я создал Sandbox REST API, связанный с указанной выше учетной записью.

  3. Я связал свою учетную запись Paypal в песочнице Braintree (https://sandbox.braintreegateway.com/) в разделе Учетная запись -> Мой пользователь.

  4. Я набрал ключи REST API в настройках-> Обработка -> PayPal.

  5. Я позаботился о том, чтобы мой простой пользователь по умолчанию был валютой PLN.

  6. Я создал внутренние методы для ClientToken и ProcessingNounce, используяBraintree .NET документы.

  7. Я подготовил интерфейс, используя dropin из Braintree docs.

Код:

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 и т. Д.

Клиент сказал мне, что он не хочет получать платеж в валюте PLN, но в евро, и там у меняпроблема.

Я изменил строку:

currency: '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.

Braintree transaction

Нет способа отладить это, вызовы API в PayPal говорят мне, что что-то не так,но я не могу щелкнуть мышью и просмотреть сведения:

PayPal debug

Когда я переключаюсь обратно на PLN в коде внешнего интерфейса и на PLN простой посредник в Braintree, транзакция работаетснова хорошо.

Мне нужна помощь, отладка невозможна.ИДК, если мне не хватает некоторых параметров, специфичных для валюты евро, или если в ней ошибка PayPal.

Спасибо за помощь заранее!

РЕДАКТИРОВАТЬ: Я копал глубже, я проверилPOST-запрос в Chrome dev tools на Sandbox Api Calls page для получения подробностей:

{
   "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:

Пример запроса на успешную оплату в польских злотых:

{  
         "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 Ответ

0 голосов
/ 31 января 2019

Я повторил:

1. Я создал бизнес-счет PayPal Sandbox с включенными евро, долларами США и злотыми.

2. Я создалAPI REST для песочницы, связанный с учетной записью выше.

4. Я набрал ключи API REST в Настройки -> Обработка -> PayPal.(в песочнице Брейнтри)

И теперь это работает.Я дважды проверил, настройки точно такие же, как и предыдущие.Я помню, на шаге 1 я добавил валюту EUR позже, так что это может быть какая-то ошибка PayPal.Или, может быть, приложение REST API не обновляет настройки валюты со счета.

...