您好,我已经成功集成了PayPal Checkout智能付款按钮,我在其中使用了自定义收款人参考https://developer.paypal.com/docs/checkout/integration-features/custom-payee/
我的意思是,如果自定义收款人电子邮件仍然无效,则付款仍将完成,资金将转到API凭证所有者的帐户。但是我不想要那个。如果自定义收款人电子邮件有误,则付款应不成功,它必须抛出一个错误并显示正确的消息,以便我可以捕获该错误。
我没有从Paypal文档中得到任何解决方案。
答案 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所有者