贝宝在上下文结账时恢复到经典快速结账

时间:2015-04-27 14:36:51

标签: paypal express-checkout

我一直试图将经典快速结账切换到上下文快速结账。

根据指示,我已将网址切换为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编号是正确的。任何人都可以帮助我了解我需要做什么来进行上下文检查工作吗?提前谢谢。

4 个答案:

答案 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