# PayPal 订阅流程及 API 请求教程

By [fengbao](https://paragraph.com/@fengbao) · 2025-01-15

---

1\. PayPal 后台创建产品及计划
--------------------

### 正式与沙盒环境入口

*   **正式环境**[创建订阅计划](https://www.paypal.com/merchantapps/appcenter/acceptpayments/subscriptions)
    
*   **沙盒环境**[创建订阅计划](https://www.sandbox.paypal.com/billing/plans)
    

在以上页面中，您可以创建产品和计划，正式环境和沙盒环境的数据相互独立。

* * *

### 操作步骤

1.  进入对应环境的链接。
    
2.  根据流程逐步填写产品和订阅计划信息。
    
3.  保存设置后，您的订阅计划即可在正式环境中使用。
    

您也可以通过 API 的方式完成产品及计划的创建，以下为详细 API 请求说明。

* * *

2\. 使用 API 创建产品及计划
------------------

API 文档参考：[PayPal REST API 文档](https://developer.paypal.com/api/rest/)

### **2.1 生成 Token**

通过以下请求获取 Access Token：

*   **沙盒环境**`https://api.sandbox.paypal.com/v1/oauth2/token`
    
*   **正式环境**`https://api.paypal.com/v1/oauth2/token`
    

所需的 `clientId` 和 `Secret` 可从您的 PayPal 账号中获取。

* * *

### **2.2 创建产品**

    curl -v -X POST https://api-m.sandbox.paypal.com/v1/catalogs/products \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <Access-Token>" \
    -H "PayPal-Request-Id: PRODUCT-18062020-001" \
    -d '{
      "name": "Video Streaming Service",
      "description": "Video streaming service",
      "type": "SERVICE",
      "category": "SOFTWARE",
      "image_url": "https://example.com/streaming.jpg",
      "home_url": "https://example.com/home"
    }'
    

#### 参数说明：

*   **name**：产品名称
    
*   **description**：产品描述
    
*   **type**：产品类型（PHYSICAL、DIGITAL 或 SERVICE）
    
*   **category**：产品分类
    
*   **image\_url**：产品图片地址
    
*   **home\_url**：产品主页地址
    

* * *

### **2.3 创建订阅计划**

    curl -v -X POST https://api-m.sandbox.paypal.com/v1/billing/plans \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <Access-Token>" \
    -H "PayPal-Request-Id: PLAN-18062019-001" \
    -d '{
      "product_id": "PROD-XXCD1234QWER65782",
      "name": "Video Streaming Service Plan",
      "description": "Basic plan for video streaming",
      "status": "ACTIVE",
      "billing_cycles": [
        {
          "frequency": {
            "interval_unit": "MONTH",
            "interval_count": 1
          },
          "tenure_type": "REGULAR",
          "sequence": 1,
          "total_cycles": 12,
          "pricing_scheme": {
            "fixed_price": {
              "value": "6",
              "currency_code": "USD"
            }
          }
        }
      ],
      "payment_preferences": {
        "auto_bill_outstanding": true,
        "setup_fee": {
          "value": "6",
          "currency_code": "USD"
        },
        "setup_fee_failure_action": "CONTINUE",
        "payment_failure_threshold": 3
      },
      "taxes": {
        "percentage": "0",
        "inclusive": false
      }
    }'
    

#### 参数说明：

*   **product\_id**：产品 ID
    
*   **name**：订阅计划名称
    
*   **status**：计划状态（ACTIVE 激活）
    
*   **billing\_cycles**：计费周期配置，支持试用与常规周期
    
    *   **interval\_unit**：计费周期单位（DAY、WEEK、MONTH、YEAR）
        
    *   **interval\_count**：每个周期的时间间隔
        
    *   **pricing\_scheme**：定价配置
        
*   **payment\_preferences**：付款偏好配置
    
    *   **setup\_fee**：设置费用
        
    *   **payment\_failure\_threshold**：付款失败后暂停订阅的阈值
        

* * *

### **2.4 创建订阅**

    curl -v -X POST https://api-m.sandbox.paypal.com/v1/billing/subscriptions \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <Access-Token>" \
    -H "PayPal-Request-Id: SUBSCRIPTION-21092019-001" \
    -d '{
      "plan_id": "P-5ML4271244454362WXNWU5NQ",
      "start_time": "2025-07-21T00:00:00Z",
      "quantity": "20",
      "application_context": {
        "brand_name": "Your Brand",
        "locale": "en-US",
        "shipping_preference": "SET_PROVIDED_ADDRESS",
        "user_action": "SUBSCRIBE_NOW",
        "return_url": "https://example.com/returnUrl",
        "cancel_url": "https://example.com/cancelUrl"
      }
    }'
    

#### 参数说明：

*   **plan\_id**：订阅计划 ID
    
*   **start\_time**：订阅开始时间（ISO8601 格式）
    
*   **quantity**：订阅商品数量
    
*   **application\_context**：用户体验配置
    
    *   **return\_url**：支付成功回调地址
        
    *   **cancel\_url**：支付取消回调地址
        

完成后，通过响应结果中的 `links.href`，即可跳转到支付订阅页面。

* * *

3\. 配置 WebHook
--------------

使用 WebHook 接收订阅事件通知：

1.  登录 PayPal 开发者后台。
    
2.  创建新的 WebHook，并设置监听的事件类型。
    
3.  确保回调地址可以处理事件响应。
    

* * *

通过以上流程，您可以轻松完成 PayPal 产品和订阅计划的配置，并通过 API 实现自动化操作。如果您需要订阅海外服务，推荐使用虚拟信用卡 **WildCard**，操作简单，支付便捷。

☞ [WildCard | 一分钟注册，轻松订阅海外线上服务](https://bit.ly/bewildcard)

使用邀请码：**ACCPAY**，立享 0 手续费优惠，支持支付宝充值，随时提现！

---

*Originally published on [fengbao](https://paragraph.com/@fengbao/paypal-api)*
