网站Auto-fill PayPal checkout异常:无法获取国家参数仅能读取数量
解决PayPal自动结账无法读取国家参数的问题
我立刻就发现了问题的根源——你的表单里重复使用了相同的字段名称on0和os0,这直接导致PayPal无法读取到你的国家参数。
问题原因详解
PayPal的自定义选项是通过onN(定义选项名称,比如“Country”)和对应的osN(存储用户选择的值,比如“US”)配对工作的。每个自定义字段都需要独一无二的编号后缀:
- 第一个自定义字段用
on0+os0 - 第二个自定义字段用
on1+os1 - 以此类推
你现在把国家和数量都用了同一组on0/os0名称,后面的数量字段会完全覆盖前面的国家字段,所以PayPal只能识别到最后一个(也就是数量)的参数。
修正后的代码
把数量部分的字段名称改成on1和os1,就能让两个参数都被PayPal正确读取了:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> <div class="form-group"> <input type="hidden" name="on0" value="Country"> <label class="control-label">Country</label> <select name="os0" class="form-control"> <option value="US">US</option> </select> </div> <div class="form-group"> <input type="hidden" name="on1" value="Quantity"> <label class="control-label">Quantity</label> <select name="os1" class="form-control"> <option value="11 units">11 units $3,000.00</option> <option value="21 units">21 units $6,000.00</option> <option value="51 units">51 units $12,500.00</option> </select> </div> <!-- 记得补充PayPal结账必需的基础字段,示例如下: <input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="business" value="你的商家邮箱地址"> <input type="hidden" name="item_name" value="你的产品名称"> <input type="hidden" name="amount" value="3000.00"> --> </form>
额外提示
如果需要让金额和用户选中的数量自动匹配,你还需要添加一段JavaScript来动态修改amount字段的值,不然PayPal会使用固定的金额。不过先解决字段名称冲突的问题,你的国家参数就能正常被读取啦。
内容的提问来源于stack exchange,提问作者Blues Clues
相关产品推荐
相关产品推荐

