Paypal 实现自动订阅详细教程

随着在线支付和订阅服务的普及,Paypal 已成为全球范围内广泛使用的支付工具之一。本文将为您提供关于如何使用 Paypal 实现自动订阅的详细教程,包括创建订阅计划、处理支付结果及订阅管理等关键步骤。

自动续费的五个步骤

根据官方文档,Paypal 提供了实现自动续费的五个步骤,实际开发中还需要处理支付结果和订阅管理:

  1. 事先创建并激活订阅计划;

  2. 用户创建订阅并跳转到 Paypal 网站等待用户同意;

  3. 用户同意后,跳转回网站并执行订阅;

  4. 获取用户账单,包括每次扣款结果的通知或主动查询支付结果;

  5. 处理用户取消订阅等通知。

使用 Paypal SDK

要实现自动订阅,首先需要通过 Composer 安装 Paypal SDK:

composer require paypal/rest-api-sdk-php

官方提供了完整的 Samples,可以帮助您快速入门。还可以通过 Paypal Sandbox 进行调试,方便模拟支付环境。

创建并激活订阅计划

  1. 订阅计划(Billing Plan) 相当于一个产品,需要为不同的商品创建不同的价格计划。如果有不同的用户需求,可以在创建协议时进行调整。

  2. 创建支付时,如果使用 TRIAL 类型,必须有 REGULAR 类型的支付,TRIAL 类型并不能自动判断新用户等条件,所以首次的优惠需要由业务代码实现。

  3. 首次扣款: 由于协议生效时间要求必须在当前时间24小时之后,循环扣款将无法立刻进行,最早也需要24小时。如果需要立即扣款,可以通过设置 MerchantPreferencessetSetupFee 参数来完成首次扣款。

  4. 遇到 "NotifyUrl" value is NULL 错误时,通常是 Paypal 服务端的错误,官方尚未修复,解决方法可参考 Github Issue

创建订阅

创建订阅协议时,用户可以针对同一订阅计划创建多个订阅协议。创建后,跳转到 Paypal 网站等待用户同意协议。以下是创建订阅的代码示例:

$link = $agreement->getApprovalLink();
parse_str(parse_url($link, PHP_URL_QUERY), $params);
$token = $params['token'];
  • 订阅计划可以被同一用户多次订阅,如果需要新订阅时,记得取消之前的协议。

  • 由于实际扣款时间通常会有延迟,可以提前一天进行扣款以确保支付的连贯性。

设置 Webhook 通知

可以在 My Apps -> REST API apps -> WEBHOOKS 设置 webhook 通知,当每次循环扣款成功时,Paypal 会发送 PAYMENT.SALE.COMPLETED 事件通知。可以通过 billing_agreement_id 字段将通知与对应的订阅协议匹配。

支付方式与管理

如果您遇到支付失败问题,可能是因为没有选择合适的支付方式。Paypal 支持多种支付方式,包括:

  • 信用卡支付:通过输入信用卡信息进行支付;

  • TORACOIN 支付:当账户余额不足时,可以通过 TORACOIN 充值;

  • 银行汇款与便利店支付:根据平台指引完成操作。

推荐服务:WildCard 一站式支付解决方案

为了帮助用户轻松完成全球范围内的支付,推荐使用 WildCard 提供的一站式服务。

WildCard | 一分钟注册,轻松订阅海外线上服务

  • 支持微信、支付宝支付,无需复杂操作。

  • 可轻松开通包括 ChatGPT、Claude、Google Play、Apple Store、OpenAI 等海外平台的订阅服务。

  • 使用邀请码:ACCPAY,享受消费 0 手续费和免开卡费优惠。

小贴士

  1. 确认充值账户信息:不同平台的充值点数不通用,确保充值账户与使用平台一致。

  2. 保留支付凭证:在支付完成后,务必保留相关凭证以备查询。

以上是关于 Paypal 自动订阅的详细教程。如果您有任何疑问,欢迎随时联系我们。我们将持续优化支付流程,为您提供更好的服务体验。