随着在线支付和订阅服务的普及,Paypal 已成为全球范围内广泛使用的支付工具之一。本文将为您提供关于如何使用 Paypal 实现自动订阅的详细教程,包括创建订阅计划、处理支付结果及订阅管理等关键步骤。
根据官方文档,Paypal 提供了实现自动续费的五个步骤,实际开发中还需要处理支付结果和订阅管理:
事先创建并激活订阅计划;
用户创建订阅并跳转到 Paypal 网站等待用户同意;
用户同意后,跳转回网站并执行订阅;
获取用户账单,包括每次扣款结果的通知或主动查询支付结果;
处理用户取消订阅等通知。
要实现自动订阅,首先需要通过 Composer 安装 Paypal SDK:
composer require paypal/rest-api-sdk-php
官方提供了完整的 Samples,可以帮助您快速入门。还可以通过 Paypal Sandbox 进行调试,方便模拟支付环境。
订阅计划(Billing Plan) 相当于一个产品,需要为不同的商品创建不同的价格计划。如果有不同的用户需求,可以在创建协议时进行调整。
创建支付时,如果使用 TRIAL 类型,必须有 REGULAR 类型的支付,TRIAL 类型并不能自动判断新用户等条件,所以首次的优惠需要由业务代码实现。
首次扣款: 由于协议生效时间要求必须在当前时间24小时之后,循环扣款将无法立刻进行,最早也需要24小时。如果需要立即扣款,可以通过设置 MerchantPreferences 的 setSetupFee 参数来完成首次扣款。
遇到 "NotifyUrl" value is NULL 错误时,通常是 Paypal 服务端的错误,官方尚未修复,解决方法可参考 Github Issue。
创建订阅协议时,用户可以针对同一订阅计划创建多个订阅协议。创建后,跳转到 Paypal 网站等待用户同意协议。以下是创建订阅的代码示例:
$link = $agreement->getApprovalLink();
parse_str(parse_url($link, PHP_URL_QUERY), $params);
$token = $params['token'];
订阅计划可以被同一用户多次订阅,如果需要新订阅时,记得取消之前的协议。
由于实际扣款时间通常会有延迟,可以提前一天进行扣款以确保支付的连贯性。
可以在 My Apps -> REST API apps -> WEBHOOKS 设置 webhook 通知,当每次循环扣款成功时,Paypal 会发送 PAYMENT.SALE.COMPLETED 事件通知。可以通过 billing_agreement_id 字段将通知与对应的订阅协议匹配。
如果您遇到支付失败问题,可能是因为没有选择合适的支付方式。Paypal 支持多种支付方式,包括:
信用卡支付:通过输入信用卡信息进行支付;
TORACOIN 支付:当账户余额不足时,可以通过 TORACOIN 充值;
银行汇款与便利店支付:根据平台指引完成操作。
为了帮助用户轻松完成全球范围内的支付,推荐使用 WildCard 提供的一站式服务。
支持微信、支付宝支付,无需复杂操作。
可轻松开通包括 ChatGPT、Claude、Google Play、Apple Store、OpenAI 等海外平台的订阅服务。
使用邀请码:ACCPAY,享受消费 0 手续费和免开卡费优惠。
确认充值账户信息:不同平台的充值点数不通用,确保充值账户与使用平台一致。
保留支付凭证:在支付完成后,务必保留相关凭证以备查询。
以上是关于 Paypal 自动订阅的详细教程。如果您有任何疑问,欢迎随时联系我们。我们将持续优化支付流程,为您提供更好的服务体验。