关于php:PayPal Express Checkout即时更新不会更新运输

PayPal Express Checkout Instant Update not updating shipping

我正在使用Paypal Express Checkout,并且一切正常,除了在调用Callback时不更新运输公司。

我可以验证正在调用回调(已记录呼叫)。
当贝宝用客户运送国家/地区调用回叫URL时,我返回以下值。

1
METHOD=CallbackResponse&OFFERINSURANCEOPTION=false&CURRENCYCODE=USD&TOKEN=EC-5Fsdf5523823&LOCALECODE=en_US&L_SHIPPINGOPTIONNAME0=USPS&L_SHIPPINGOPTIONLABEL0=First+Class+%283-7+Days%29&L_SHIPPINGOPTIONAMOUNT0=0.00&L_SHIPPINGOPTIONISDEFAULT0=true&L_TAXAMT0=0.00&L_INSURANCEAMOUNT0=0.00&L_SHIPPINGOPTIONNAME1=USPS&L_SHIPPINGOPTIONLABEL1=Priority+%282-3+Days%29&L_SHIPPINGOPTIONAMOUNT1=7.95&L_SHIPPINGOPTIONISDEFAULT1=false&L_TAXAMT1=0.00&L_INSURANCEAMOUNT1=0.00&L_SHIPPINGOPTIONNAME2=UPS&L_SHIPPINGOPTIONLABEL2=Next+Day+Air&L_SHIPPINGOPTIONAMOUNT2=39.95&L_SHIPPINGOPTIONISDEFAULT2=false&L_TAXAMT2=0.00&L_INSURANCEAMOUNT2=0.00

回调消息正在通过PHP回显(我什至尝试将其保存为txt文件并将回调URL指向此文件),即使Paypal不会更新发运方法。

我也将CALLBACKTIMEOUT更改为6秒,但这没关系。我正在使用HTTPS,也尝试使用普通的HTTP。

我正在沙盒模式下对此进行测试。

有人可以帮助我吗?我真的被困在这里,我一直在寻找类似的问题,但找不到任何问题。

为您提供信息,我遵循了此Paypal指南:https://developer.paypal.com/docs/classic/paypal-payments-pro/integration-guide/WPInstantUpdateAPI/

我还检查了是否返回了如下所述的所有必填字段:
https://developer.paypal.com/docs/classic/api/merchant/Callback_API_Operation_NVP/

我希望有人能帮助我,在此先感谢!

更新

我尝试不发货选项

1
METHOD=CallbackResponse&NO_SHIPPING_OPTION_DETAILS=1&CALLBACKVERSION=95.0

Paypal回应为"不会运送到此位置"。请使用其他地址。\\'
因此,响应网址有效,问题出在使用其他运输选项进行响应时。

关于,
库鲁杜


我遇到了与您相同的问题,但是后来我尝试了PayPal Instant Update集成指南中的示例代码,并将其作为文本文件添加到了我的服务器上:

1
METHOD=CallbackResponse&OFFERINSURANCEOPTION=true&L_SHIPPINGOPTIONNAME0=UPS+Air&L_SHIPPINGOPTIONLABEL0=UPS+Next+Day+Air+Freight&L_SHIPPINGOPTIONAMOUNT0=20.00&L_TAXAMT0=2.20&L_INSURANCEAMOUNT0=1.51&L_SHIPPINGOPTIONISDEFAULT0=false&L_SHIPPINGOPTIONNAME1=UPS+Expedited&L_SHIPPINGOPTIONLABEL1=UPS+Express+2+Days&L_SHIPPINGOPTIONAMOUNT1=10.00&L_TAXAMT1=2.00&L_INSURANCEAMOUNT1=1.35&L_SHIPPINGOPTIONISDEFAULT1=true&L_SHIPPINGOPTIONNAME2=UPS+Ground&L_SHIPPINGOPTIONLABEL2=UPS+Ground+2+to+7+Days&L_SHIPPINGOPTIONAMOUNT2=5.99&L_TAXAMT2=1.99&L_INSURANCEAMOUNT2=1.28&L_SHIPPINGOPTIONISDEFAULT2=false

这至少给了我一个CallbackResponse,它最终起作用了,然后我可以通过编程对其进行更新以使其在其余过程中起作用。把我的头发扯了很多小时。由于PayPal并未真正提供任何调试CallbackResponses的方法,因此我很高兴拥有一个可以正常运行的起点。

希望这有助于将其他人指向正确的方向。