Prestashop的Paypal跳转出现地址错误无法支付

Prestashop 1.6.17在用Paypal USA 1.3.9网关进行跳转支付时,有如下提示:

There’s a problem with your shipping address.
Please return to the merchant and update your information, including your city, state, and ZIP code.

大致意思是缺少部分关键地址。这个问题是由于Paypal现在对地址验证更加严格。而prestashop没有传country code这个值。有的国家没有state,也会有这个错误。

如果是address2参数没有传上,会被标记为undefined,同时还需要传country code值。

解决方法:

如果用的Paypal标准支付改这个文件:/modules/paypalusa/views/templates/hooks/standard.tpl

有高级或快捷支付同时需要改这个文件:payment-advanced.tplexpress-checkout.tpl

1. 找到28-29行

{if ($paypal_usa_billing_address->address2  != '')}<input type="hidden" name="address2" value="{$paypal_usa_billing_address->address2|escape:'htmlall':'UTF-8'}" />{/if}

改成

{if ($paypal_usa_billing_address->address2  != '')}{/if}<input type="hidden" name="address2" value="{$paypal_usa_billing_address->address2|escape:'htmlall':'UTF-8'}" />

这段代码的作用是即使address2为空,也不会被识别为undefined

2. 之后紧接着添加下列代码(也可以放在state那段后):

<input type="hidden" name="country" value="{$paypal_usa_billing_address->country->iso_code|escape:'htmlall':'UTF-8'}" />

通常情况下,只需加第二段代码即可解决报错问题。

0
封面图
没有账号? 注册  忘记密码?
";s:2:"js";s:114:"