opencart 1.5.5.1 和 paypal 标准存在一些问题。我正在使用 Paypal.com.au(在澳大利亚)当我开始时,没有电话,也没有状态从 opencart 传递到 paypal。其余字段(地址、电子邮件、姓名)都已预先填充。所以我进入了 paypayl 标准代码并将其添加到 Controller 中:
$this->data['night_phone_b'] = html_entity_decode($order_info['telephone'], ENT_QUOTES, 'UTF-8');
并将此添加到 tpl 文件中:
<input type="hidden" name="night_phone_b" value="<?php echo $night_phone_b; ?>" />
这适用于电话,但是,无论我对状态进行何种尝试,我都无法使其正常工作。我看着做这样的事情:
$this->data['state'] = html_entity_decode($order_info['payment_zone_code'], ENT_QUOTES, 'UTF-8');
与上面相同,但将 ['payment_zone_code']
替换为 ['payment_zone_id']
和 ['zone_id']
在 tpl 文件中:
<input type="hidden" name="state" value="<?php echo $state; ?>" />
无论如何,我很难将状态传递给 paypal。
编辑 在 paypal 的澳大利亚网站上查看:https://www.paypal.com/au/cgi-bin/webscr?cmd=_pdn_xclick_prepopulate_outside 他们也不在这个问题上提供任何帮助,所有示例都是针对美国各州的:“州(必须是 2 个字符的官方缩写)”,对 3 个字符的缩写没有任何帮助。还在等待他们的回复
最佳答案
好像可以通过一个澳大利亚州的全名(Paypal 买家详细信息选择表单上的值,而不是可见的内容)
这感觉有点狡猾,但对我有用。希望 Paypal 不会改变任何东西......
$states['ACT'] = "Australian Capital Territory";
$states['NSW'] = "New South Wales";
$states['NT'] = "Northern Territory";
$states['QLD'] = "Queensland";
$states['SA'] = "South Australia";
$states['TAS'] = "Tasmania";
$states['VIC'] = "Victoria";
$states['WA'] = "Western Australia";
然后将“billing_region”而不是状态作为表单的一部分传递...
'billing_region' => $state[$fdata['u_state']]
关于paypal - Opencart:使用澳大利亚各州预填充 Paypal 州字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16805443/