我想在AngularJS应用程序下集成PayPal
in-context checkout.一切都按预期工作:
>通过REST API我发送所有细节并获得结账TOKEN
>然后,TOKEN被传递到客户端应用程序
>使用某些TOKEN调用上下文检出
现在我想知道是否有办法防止在成功或取消方案后重定向页面.
以下是客户端应用程序中的一段代码:
<button id="t2" type="submit">Pay</button>
<script>
window.paypalCheckoutReady = function () {
paypal.checkout.setup("API_CREDENTIALS", {
environment: "sandbox",
button: ["t2"],
click: function (event) {
event.preventDefault();
//init lightbox modal
paypal.checkout.initXO();
//start checkout flow
paypal.checkout.startFlow(TOKEN);
}
});
};
</script>
<script src="//www.paypalobjects.com/api/checkout.js" async=""></script>
最佳答案 基于JS的In-Context弹出窗口仅提供前端体验,并且如下所述构成支付顺序的一部分,
>上下文弹出窗口和用户交互(同意付款)
>弹出窗口自动关闭(由checkout.js立即控制)和浏览器重定向到您的desinated返回页面
>在退货页面中调用执行API以完成付款
>触发Webhooks(通知您的网站有关交易状态)
你试图打断的是#2和#3之间的行为,它位于支付流程的中间,你可以看到的自定义是在PAY方法的API有效负载中定义你的redirect_urls对象(你使用它)生成支付代币),使用return_url和您的路由逻辑(通过URL和字符串查询的组合)在订单确认页面上向客户显示相应的内容(步骤#3)
当客户取消/关闭弹出窗口时,cancel_url中的规则相同(步骤#2)
"redirect_urls": {
"return_url": "http://www.return.com/routing/?stringQuery",
"cancel_url": "http://www.cancel.com/routing/?stringQuery"
}
请务必在之后的返回页面中调用执行调用