Paypal 托管语言错误。 Paypal Express 按钮基于“国家/地区”而不是“lc”
Posted
技术标签:
【中文标题】Paypal 托管语言错误。 Paypal Express 按钮基于“国家/地区”而不是“lc”【英文标题】:Paypal Hosted language bug. Based on 'country' instead of 'lc' for Paypal Express button 【发布时间】:2017-12-18 18:47:01 【问题描述】:-
使用带有 lc="GB" 的 templateD 选项创建一个 paypal 托管表单,但发货国家/地区的语言不是英语(例如 NL)
如果可以选择使用 Paypal Express 或信用卡付款,请选择 Paypal express 选项。
当重定向到贝宝时,贝宝登录表单以荷兰语显示,因为它使用的是“国家”值而不是“lc”值。我已通过在国家/地区值中强制输入“GB”来确认这一点。
这是 html 表单:
<form action="https://securepayments.paypal.com/webapps/HostedSoleSolutionApp/webflow/sparta/hostedSoleSolutionProcess" method="post" id="checkout-form">
<input type="hidden" name="cmd" value="_hosted-payment">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="shipping" value="4.13">
<input type="hidden" name="tax" value="0.83">
<input type="hidden" name="subtotal" value="22.98">
<input type="hidden" name="business" value="xxx@xxx.com">
<input type="hidden" name="currency_code" value="GBP">
<input type="hidden" name="showShippingAddress" value="true">
<input type="hidden" name="first_name" value="test">
<input type="hidden" name="last_name" value="test">
<input type="hidden" name="address1" value="123 Test">
<input type="hidden" name="address2" value="">
<input type="hidden" name="city" value="Laren">
<input type="hidden" name="zip" value="1251TM">
<input type="hidden" name="country" value="NL">
<input type="hidden" name="state" value="Noord Holland">
<input type="hidden" name="night_phone_b" value="252525">
<input type="hidden" name="billing_first_name" value="test">
<input type="hidden" name="billing_last_name" value="test">
<input type="hidden" name="billing_address1" value="123 UK Street, Suite UK1">
<input type="hidden" name="billing_address2" value="">
<input type="hidden" name="billing_city" value="Aberdeen">
<input type="hidden" name="billing_zip" value="AB10">
<input type="hidden" name="billing_country" value="GB">
<input type="hidden" name="logoImage" value="https://www.specialistsupplements.com/image/data/specialist-supplements-logo.png">
<input type="hidden" name="billing_state" value="Aberdeen">
<input type="hidden" name="showBillingPhone" value="false">
<input type="hidden" name="showHostedThankyouPage" value="false">
<input type="hidden" name="buyer_email" value="test@test.com">
<input type="hidden" name="invoice" value="123">
<input type="hidden" name="lc" value="GB">
<input type="hidden" name="charset" value="utf-8">
<input type="hidden" name="address_override" value="false">
<input type="hidden" name="paymentaction" value="sale">
<input type="hidden" name="return" value="xxxx">
<input type="hidden" name="notify_url" value="xxxx">
<input type="hidden" name="cancel_return" value="xxxx">
<input type="hidden" name="custom" value="123">
<input type="hidden" name="template" value="templateD">
</form>
这里的“lc”代码是“GB”,这应该强制“English”。问题是一个不懂荷兰语的人可能想把一件物品寄给另一个国家的朋友,并且无法阅读付款方式。至少它应该使用 billing_country 值,但最终使用 lc 代码,因为这是它的预期用途。
【问题讨论】:
【参考方案1】:我发现 PayPal 忽略了 lc
和 billing_country
字段。
在我的例子中,两者都设置为 CA
,但在到达 PayPal 后,账单国家/地区始终会显示 美国,而不是 加拿大。
我找到的解决方法是设置:
<input name="landing_page" value="billing" type="hidden">
设置此变量后,PayPal 不再忽略 billing_country
字段。
【讨论】:
我通过在表单中添加此字段来尝试您的解决方案,但它不起作用。只有 lc 字段很重要。你能张贴你的整个表格吗?我尝试使用此表单 (pastebin.com/nujJit4w) 但失败了以上是关于Paypal 托管语言错误。 Paypal Express 按钮基于“国家/地区”而不是“lc”的主要内容,如果未能解决你的问题,请参考以下文章
使用非托管 PayPal 按钮时如何使用 IPN 验证 PayPal 数据