从旧PayPal静态按钮迁移至JS SDK按钮后的IPN字段匹配问题
字段映射结论
你在PayPal JS SDK createOrder 方法的 purchase_units 中配置的 description 字段,会直接映射到IPN上报的原有item_name字段,不会作为新增字段上报,你原有校验item_name的逻辑无需调整即可正常运行。
如果你需要兼容原有item_number字段的校验逻辑,有两种实现方案:
- 方案1:在
purchase_units配置中补充custom_id参数,该参数会映射到IPN上报的custom字段,修改原有IPN校验规则,将item_number的校验逻辑改为校验custom字段即可 - 方案2:通过声明商品明细的方式严格对应原有字段,参考代码如下:
createOrder: function(data, actions) { return actions.order.create({ purchase_units: [{ "description": "Site Donation", // 对应IPN item_name "amount":{ "currency_code":"USD", "value":1.99, "breakdown": { "item_total": { "currency_code": "USD", "value": 1.99 } } }, "items": [ { "name": "Site Donation", "sku": "Donation", // 对应IPN item_number字段,和原有静态表单的item_number完全一致 "unit_amount": { "currency_code": "USD", "value": 1.99 }, "quantity": "1" } ] }] }); }
补充说明
如果你的场景只有单类捐赠商品,不需要拆分明细,仅用description字段就可以满足item_name的校验需求,无需额外修改IPN逻辑。IPN的字段映射规则不会因为使用静态表单还是智能按钮发生变化,只要参数传对,原有校验逻辑都可以正常复用。
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

