贝宝结帐智能付款按钮使用自定义收款人

时间:2020-04-09 05:30:14

标签: paypal

您好,我已经成功集成了PayPal Checkout智能付款按钮,我在其中使用了自定义收款人参考https://developer.paypal.com/docs/checkout/integration-features/custom-payee/

我的意思是,如果自定义收款人电子邮件仍然无效,则付款仍将完成,资金将转到API凭证所有者的帐户。但是我不想要那个。如果自定义收款人电子邮件有误,则付款应不成功,它必须抛出一个错误并显示正确的消息,以便我可以捕获该错误。

我没有从Paypal文档中得到任何解决方案。

2 个答案:

答案 0 :(得分:0)

如果自定义收款人电子邮件无效,则付款仍会完成,资金会转到API凭证所有者的帐户

“无效”是什么意思?请具体说明您的意思。

如果电子邮件未与现有的PayPal帐户关联,则付款将处于待处理状态。所有者有30天的时间使用该电子邮件创建PayPal帐户(或将其添加到现有的PayPal帐户中)并接受待处理的付款。如果他们在30天内不这样做,则付款将自动退款。在这种情况下,“资金到API凭证所有者的帐户中”不是 情况。那没有发生。

现在,如果您尝试在付款设置时传递一个带有空白/空字符串payee的{​​{1}}对象,那么它将被忽略,并且付款将转到API凭据所有者/不带自定义收款人的正常付款处理。

因此,您需要自己进行验证以确保“收款人”字段为非空白。您只需检查它是否为非空字符串即可。

或者,做得更好,然后实际检查它是否为有效格式的电子邮件地址:

email_address

如果无效,则您不应允许使用该无效的自定义收款人进行订单创建,因为它显然不会创建您希望的交易。相反,您应该显示一个错误,指出该用户/收件人/收款人的结帐未正确设置。

答案 1 :(得分:0)

<script src="https://www.paypal.com/sdk/js?client-id=XXXXXXXXXX"></script>

paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: '1.00'
          },
          payee: {
             email_address: 'someemail@somedomain.com'
          }
        }]
      });
    },
    onApprove: function(data, actions) {
      // This function captures the funds from the transaction.
      return actions.order.capture().then(function(details) {
      	//success
    },
    onCancel: function (data) {
      //cancel payment
    }
  }).render('#paypal-button-container'); 

此处收款人电子邮件不存在,资金转给了api所有者