支付宝大脑树交易的处理程序拒绝响应

时间:2018-12-14 14:07:16

标签: php paypal braintree

我已使用非企业帐户创建沙箱帐户。 交易已创建:-

$amount = $_POST["amount"];
$nonce = $_POST["payment_method_nonce"];
$result = $gateway->transaction()->sale([
    'amount' => $amount,
    'paymentMethodNonce' => $nonce,
    'options' => [
    'submitForSettlement' => true]
]);

我得到的结果是:

  

错误处理交易:代码:2081文字:PayPal待付款   不支持

我不确定是由于帐户问题还是由于集成引起的问题。

2 个答案:

答案 0 :(得分:0)

进行一些研究,这是您的沙盒帐户产生的货币问题。我为您提供了答案,并提供了源链接以进一步调查,因为这是一张公开票。

您的沙盒帐户似乎已设置为阻止来自PayPal帐户的付款,而该帐户使用的币种与您发出请求的币种不同。

如果这是您想要的行为,则需要使用与“插入”设置相同的币种创建一个测试客户帐户。

如果这不是您想要的行为,则可以登录sandbox.paypal.com并转到Profile > My Selling Tools > Block Payments调整设置,或转到Profile > My Money > PayPal Balance section > More > Currencies添加您尝试使用的帐户的币种使用。

来源:Paypal sandbox issue

答案 1 :(得分:0)

这为我解决了:

1)贝宝:在贝宝沙箱帐户中,我重新创建了一个新的企业帐户,该帐户指示有效运行应用程序的国家(在我的情况下为IT)。

2)贝宝(Paypal):使用刚刚生成的业务帐户,我创建了新的贝宝应用程序,并获得了贝宝客户ID和密码。

3)Braintree:我重新链接了我的Paypal Sandbox应用程序,指示新Paypal商业帐户的凭据:刚刚生成的应用程序的电子邮件,客户ID和客户密码。

4)进入我的应用程序/集成:在我的Braintree SDK js代码(v3)中,我在paypal设置js代码中设置了正确的货币(在我的情况下为EUR):

<script>
var form = document.querySelector('#checkout-form');
var client_token = "{{ $clientToken }}";
var price = $('#selected_service_price').val();

braintree.dropin.create({
  authorization: client_token,
  selector: '#bt-dropin',
  paypal: {
    flow: 'checkout',
    amount: price, 
    currency: 'EUR'
  }
}, function (createErr, instance) {
  if (createErr) {
    console.log('Create Error', createErr);
    return;
  }
  form.addEventListener('submit', function (event) {
    event.preventDefault();
    instance.requestPaymentMethod(function (err, payload) {
      if (err) {
        console.log('Request Payment Method Error', err);
        return;
      }
      // Add the nonce to the form and submit
      document.querySelector('#nonce').value = payload.nonce;
      form.submit();
    });
  });
});