如何在常规PayPal支付中添加Gift Aid复选框及完成沙箱测试
将Gift Aid复选框嵌入常规PayPal支付流程实现方案
你已经完成Donate SDK的独立部署,要把Gift Aid选项以复选框形式加到常规支付流里,不需要额外加载独立捐赠SDK,直接基于现有常规PayPal JS SDK调整即可,操作步骤如下:
- 加载SDK时在参数里追加
enable-funding=donate,确保捐赠相关接口权限正常启用。 - 在PayPal支付按钮的上方位置,插入自定义复选框DOM,文案按规则写清Gift Aid适用说明(即英国税务居民捐赠可享受25%税务减免,捐赠人需确认自己缴纳的税额足够覆盖对应减免额),样式可自定义适配自身页面风格。
- 定义简单状态变量存储复选框勾选结果,比如
let giftAidChecked = false,给复选框绑定change事件实时更新这个变量的值。 - 在
createOrder回调构造订单参数时,把Gift Aid勾选状态传到指定字段即可,参考代码:
createOrder: (data, actions) => { return actions.order.create({ purchase_units: [ { amount: { currency_code: "GBP", value: "实际捐赠金额" } } ], payment_source: { paypal: { attributes: { gift_aid: { opted_in: giftAidChecked } } } } }) }
- 必须满足的前置条件:结算货币必须为英镑GBP,收款PayPal账户必须是英国注册的慈善类账户,普通商户账户传递该字段不会被识别。
沙箱环境测试方法
- 先在PayPal开发者后台准备两个沙箱测试账号:一个是归属地为英国的慈善类商家沙箱号,提前在沙箱账户设置中打开Gift Aid功能开关;另一个是归属地为英国的个人沙箱买家号,用来模拟捐赠人付款操作。
- 前端加载SDK时把环境参数设为
sandbox,client-id替换为上述沙箱商家号的对应id。 - 按以下场景逐一验证:
- 勾选Gift Aid复选框走完整支付流程,支付完成后登录沙箱商家后台查看对应交易详情,能看到Gift Aid opted-in标记即代表参数传递成功
- 不勾选复选框完成支付,确认交易详情中无Gift Aid相关标记
- 测试中途取消支付、返回页面切换复选框状态后再发起支付的场景,确认传参与实际勾选状态一致
- 沙箱环境不会生成真实税务申报数据,返回的Gift Aid相关字段均为模拟值,只要接口不报错、后台能识别到传递的勾选状态,就说明接入逻辑正常。
提醒:Gift Aid是英国慈善捐赠专属功能,非捐赠类普通商品交易不要传递该字段,否则会被PayPal风控规则拦截。
内容的提问来源于stack exchange,提问作者Faizan Haidar Khan
相关产品推荐
相关产品推荐

