Paypal Checkout.js 未调用 onAuthorize()
Posted
技术标签:
【中文标题】Paypal Checkout.js 未调用 onAuthorize()【英文标题】:Paypal Checkout.js not calling onAuthorize() 【发布时间】:2017-11-06 08:48:55 【问题描述】:我有来自https://developer.paypal.com/demo/checkout/#/pattern/confirm的以下代码
代码在 Paypal 结帐页面显示,我可以输入我的所有信息。我遇到的问题是 onAuthorize() 根本没有被调用。即使我完成了一个事务,唯一被调用的是 onCancel() 函数。
注意:我正在使用这里的测试信用卡https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm
paypal.Button.render(
// Set your environment
env: 'sandbox', // sandbox | production
// Create a PayPal app: https://developer.paypal.com/developer/applications/create
client:
sandbox: 'AY2UxZoOkoWQ0-******',
production: '' // This is not set
,
commit: true, // Set to 'Pay Now'
payment: function() // Wait for the PayPal button to be clicked
// Make a client-side call to the REST api to create the payment
return paypal.rest.payment.create(this.props.env, this.props.client,
transactions: [
amount: total: '10.00', currency: 'USD'
]
);
,
// Wait for the payment to be authorized by the customer
onAuthorize: function(data, actions)
console.log('onAuthorize');
,
onCancel: function(data, actions)
console.log('onCancel');
console.log(data);
, '#paypal-button-container');
当我从 onCancel() 打印数据对象时的响应如下:
cancelUrl: "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&xo_node_fallback=true&force_sa=true&fallback=1&token=EC-90M952801L841090P",
intent: "sale",
paymentToken: "EC-90M952801L841090P"
【问题讨论】:
在演示站点上直接使用按钮时看到相同的结果吗? @bluepnume 是的,完全一样。一旦添加,只有 onCancel() 会被调用。看看是否有帮助。 但是如果你不添加 onCancel 是否有效?或者什么都没发生 @bluepnume 然后它根本不会做任何事情。仍然不会进入 onAuthorize() @bluepnume 不确定是否有区别,但我正在使用这里的测试信用卡paypalobjects.com/en_US/vhelp/paypalmanager_help/… 【参考方案1】:我现在正在处理这个问题。 我在测试期间意识到并感谢@zee(我读到“只有 onCancel() 才会被调用一次添加..”这让我想到)只有在 SANBOX checkout.js 中才会调用 onCancel() 总是(或至少,总是为我和我所有的测试)。 我(10 分钟前)想在 onCancel() 中实现一个可怕的“IF”来处理响应并调用我的服务器,就像我想在 onAutorize() 内部做的那样(在付款执行等之后......)。 在此之前,我用生产密钥尝试过一次,然后......它奏效了! onAutorize() 被调用并且一切都按预期运行。 直到昨天我都在这个问题上并且正在燃烧,我希望这会对某人有所帮助。
西蒙娜
【讨论】:
以上是关于Paypal Checkout.js 未调用 onAuthorize()的主要内容,如果未能解决你的问题,请参考以下文章
Paypal API - checkout.js - 解析响应错误
无法让 PayPal checkout.js 创建成功的交易
卡住了 Paypal Express Checkout 的集成(基本集成 checkout.js 版本 4.0.0)