PayPal 支付流程详解:Checkout 收银台与 Subscription 订阅计划

文章从 PayPal 支付的生命周期出发,详细解析了 Checkout 收银台和 Subscription 订阅计划的完整流程,并提供了具体的代码实现,帮助你快速上手 PayPal 支付对接。

1. PayPal 支付的生命周期

1.1 Checkout 收银台支付

Checkout 收银台支付的流程与支付宝的收银台类似,以下是详细步骤:

  1. 组装参数并请求 Checkout 接口:本地应用组装好参数后请求 Checkout 接口,接口同步返回一个支付 URL。
  2. 重定向至支付 URL:本地应用重定向至该 URL,用户登录 PayPal 账户并确认支付,支付成功后跳转至本地应用设置的回调地址。
  3. 发起扣款:本地应用请求 PayPal 执行付款接口发起扣款。
  4. 接收异步通知:PayPal 发送异步通知至本地应用,本地应用拿到数据包后进行验签操作。
  5. 处理支付结果:验签成功后,执行支付完成后的业务逻辑,如修改订单状态、增加销量、发送邮件等。

1.2 Subscription 订阅支付

Subscription 订阅支付的流程相对复杂,以下是详细步骤:

  1. 创建计划:首先创建一个订阅计划。
  2. 激活计划:激活该订阅计划。
  3. 创建订阅申请:使用已激活的计划创建订阅申请。
  4. 用户授权与支付:本地应用跳转至订阅申请链接,获取用户授权并完成第一期付款,支付成功后携带 token 跳转至本地应用设置的回调地址。
  5. 执行订阅:回调后请求执行订阅。
  6. 处理订阅结果:收到订阅授权和支付结果的异步回调,验证成功后执行支付完成后的业务逻辑。

2. 具体实现

2.1 Checkout 支付实现

2.1.1 安装 PayPal SDK

在项目中安装 PayPal 的 PHP SDK:

bash
$ composer require paypal/rest-api-sdk-php:*

2.1.2 创建 PayPal 配置文件

创建 PayPal 配置文件 config/paypal.php,配置内容如下:

php
<?php

return [
‘sandbox’ => [
‘client_id’ => env(‘PAYPAL_SANDBOX_CLIENT_ID’, ”),
‘secret’ => env(‘PAYPAL_SANDBOX_SECRET’, ”),
‘notify_web_hook_id’ => env(‘PAYPAL_SANDBOX_NOTIFY_WEB_HOOK_ID’, ”),
‘checkout_notify_web_hook_id’ => env(‘PAYPAL_SANDBOX_CHECKOUT_NOTIFY_WEB_HOOK_ID’, ”),
‘subscription_notify_web_hook_id’ => env(‘PAYPAL_SANDBOX_SUBSCRIPTION_NOTIFY_WEB_HOOK_ID’, ”),
],

'live' => [
    'client_id' => env('PAYPAL_CLIENT_ID', ''),
    'secret' => env('PAYPAL_SECRET', ''),
    'notify_web_hook_id' => env('PAYPAL_NOTIFY_WEB_HOOK_ID', ''),
    'checkout_notify_web_hook_id' => env('PAYPAL_CHECKOUT_NOTIFY_WEB_HOOK_ID', ''),
    'subscription_notify_web_hook_id' => env('PAYPAL_SUBSCRIPTION_NOTIFY_WEB_HOOK_ID', ''),
],

];

2.1.3 创建 PayPal 服务类

创建 PayPal 服务类 app/Services/PayPalService.php,编写 Checkout 支付的相关方法。

2.1.4 注册 PayPal 服务类

app/Providers/AppServiceProvider.php 中注册 PayPal 服务类。

2.1.5 创建控制器

创建一个支付控制器 PaymentsController,处理 Checkout 支付逻辑。

2.1.6 设置异步回调

在 PayPal 开发者中心配置 Webhook 事件,并设置异步回调地址。

2.2 Subscription 订阅支付实现

2.2.1 创建计划并激活

使用 PayPal SDK 创建订阅计划并激活。

2.2.2 创建订阅申请

创建订阅申请,并获取用户授权。

2.2.3 执行订阅

在回调中执行订阅,并处理订阅结果。

2.2.4 处理异步回调

在 PayPal 开发者中心配置 Webhook 事件,并处理订阅的异步回调。

3. 结语

通过本文,你已经了解了 PayPal Checkout 收银台和 Subscription 订阅计划的完整对接流程,并掌握了具体的代码实现。希望本文能帮助你顺利完成 PayPal 支付的对接。

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

上一篇 1天前
下一篇 1天前

相关推荐