我创建了一个简单的网站,在客户端集成了 PayPal 结帐,以便收取一些访问我的移动应用程序的费用。除了 BLIK、iDEAL、Przelewy24 等资金服务(基本上是第三方支付服务)外,它的效果都很好。它在沙盒中工作,但每当有人尝试使用资金服务购买时,整个付款都会在资金服务端完成,但我在我的 PayPal 帐户上看不到任何付款。效果是顾客花钱了,我不明白..
当我检查 PayPal 帐户上的 API 调用历史记录时,注册了“POST /v2/checkout/orders”,但没有注册相应的“POST /v2/checkout/orders/.../capture”事件 - 我想这捕获了PayPal 方面的付款。我试图获得 PayPal 支持,但需要很长时间,而且问题很可能与我设置付款的方式有关。
任何人都可以看看我实现它的方式,并让我知道我是否应该更正代码:
<script src="https://www.paypal.com/sdk/js?client-id=AU8GOhxtmtuzCdJ6wfp0FqG-UOLoEmKbShePWUw8MoCO1cGl1EWw9SdSD93EcAlAMbTrOC9MDuXl3Mec¤cy=EUR"></script>
<script>
var selectedApp = null;
var inputEmail = null;
var inputCode = null;
var purchasePrice = 9.99.toString();
var purchaseStatus = false;
paypal.Buttons({
createOrder: function (data, actions) {
return actions.order.create({
purchase_units: [
{
description: selectedApp + ' ' + inputEmail + ' ' + inputCode,
amount: {
currency_code: 'EUR',
value: purchasePrice,
},
},
],
})
},
onApprove: function (data, actions) {
return actions.order.capture().then(function (details) {
document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block';
})
}
}).render("#paypal")
</script>
(全局变量是使用支付网站上的表单设置的)
这些替代融资服务有时可以在不发生 /capture 调用的情况下完成付款,因为它们会让买家离开您的网站和 PayPal。不过,这笔钱仍应出现在您的 PayPal 帐户中。至于收到通知,您可以使用您集成的 REST APP/客户端 ID 订阅 webhooks,将会有一个用于完成捕获。
与您的问题没有直接关系,但
actions.order.create(
和 actions.order.capture(
是已弃用的函数。 PayPal 已开始发送信息,表示他们将被关闭并关闭处理,请勿使用它们。相反,通过将安全服务器直接与 v2/checkout/orders API 集成来创建和捕获订单。请参阅标准集成指南