使用PayPal SDK如何在交易中添加Discord服务器ID自定义标识
PayPal支付接入Discord Guild ID标识方案
你可以通过PayPal订单提供的custom_id自定义字段存储Discord服务器Guild ID,该字段仅商户可见,会随支付完成后的订单详情一同返回,完美匹配你的业务需求。
修改后的完整代码
// 提前从业务逻辑中获取待激活的Discord服务器Guild ID(可从URL参数、全局变量、用户选择结果等位置读取) const targetDiscordGuildId = "替换为实际的Guild ID字符串"; paypal.Buttons({ style: { color: 'blue', shape: 'pill' }, createOrder:function (data, actions){ return actions.order.create({ purchase_units: [{ amount:{ value: '1.00' }, // 新增:将Guild ID绑定到当前订单 custom_id: targetDiscordGuildId }] }); }, onApprove:function (data, actions){ return actions.order.capture().then(function (details){ console.log(details) // 新增:从支付完成的订单中取出绑定的Guild ID const paidGuildId = details.purchase_units[0].custom_id; // 此处调用你的后端接口,传入订单信息和Guild ID,核验交易后激活对应服务器的付费权益 }) } }).render('#paypal-payment-button');
核心修改说明
- 提前获取用户选择的待升级Discord服务器对应的Guild ID
- 在
createOrder方法的purchase_units配置中新增custom_id字段,传入获取到的Guild ID,PayPal会将该值和订单永久绑定 - 支付成功回调
onApprove中,从返回的订单详情里取出custom_id即对应Guild ID,即可和订单核验信息一同提交给后端完成权益发放
安全提示:生产环境建议将订单创建、金额校验、权益激活逻辑全部放在服务端处理,避免前端参数被篡改引发资损。
内容的提问来源于stack exchange,提问作者Conta
相关产品推荐
相关产品推荐

