我一直试图将经典快速结账切换到上下文快速结账。
根据指示,我已将网址切换为https://www.paypal.com/checkoutnow/
这是购物车中的HTML代码段:
<div class="col-md-6">
<a id="paypalcheckout" href="paypal_checkout/PostToPaypal.cfm?orderidentifier=XXXX">
<img class="paypal-button-hidden" src="/img/paypal.png" alt="" class="img-responsive center-block"/>
</a>
</div>
<script>
window.paypalCheckoutReady = function() {
paypal.checkout.setup("ZZZZ", {locale: 'en_US', environment: 'sandbox', button: ['paypalcheckout']});
}
</script>
<script async src="//www.paypalobjects.com/api/checkout.js"></script>
PostToPaypal.cfm发出必要的api请求并获取EC代码,然后重定向到此链接:
https://www.sandbox.paypal.com/checkoutnow/2?incontext=1&token=EC-YYYY
点击会弹出一个窗口,主窗口变暗。但几秒钟后,弹出窗口使主页面进入经典结账并关闭。这让我继续使用旧方法成功结账。所以我知道EC编号是正确的。任何人都可以帮助我了解我需要做什么来进行上下文检查工作吗?提前谢谢。
答案 0 :(得分:1)
我遇到了同样的问题。
解决方案原来是服务器端设置。 在paypalfunctions.php文件(PayPal本身为我生成)中,您需要删除几行,其中一行是数字项。 寻找类似的一行:
$nvpstr .= "&L_PAYMENTREQUEST_0_ITEMCATEGORY" . $index . "=Digital";
可能会重复几次。 基本上,数字商品不允许通过上下文结帐,这就是我收到重定向问题的原因。
答案 1 :(得分:0)
我将LANDINGPAGE设置为Billing时遇到了同样的问题。
在该特定情况下,沙箱将恢复为经典快速结帐版本。 在生产中,LANDINGPAGE参数的Billing和Login值都会生成正确的弹出窗口。
答案 2 :(得分:0)
对我来说,问题是获取交易ID时的CALLBACK
参数。当我删除它时,它工作。
答案 3 :(得分:0)
我必须删除这些参数才能使其正常工作
FlatRateShippingOptions
cppHeaderImage
CallbackURL
CallbackTimeout