PHP 集成 Stripe 订阅支付:解锁外贸独立站的成功之道

Stripe 是全球知名的支付处理平台,支持多种支付方式和多国货币。通过集成 Stripe 订阅支付,外贸独立站可以轻松接收全球订单,并实现便捷的跨境支付。本文将详细介绍如何通过 PHP 集成 Stripe 订阅支付功能,帮助您快速实现会员订阅和定期计费功能。

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

Stripe 订阅支付的优势

Stripe 订阅 API 提供了一种简单的方式,帮助您在网站中集成定期付款功能。通过 Stripe 支付网关,您可以轻松实现会员订阅计划,支持全球多种信用卡支付,包括:

  • Visa(维萨)
  • Mastercard(万事达卡)
  • American Express(美国运通卡)
  • Discover(发现卡)
  • JCB(日本商联卡)
  • Diners Club(大来卡)
  • UnionPay(银联卡)

Stripe 订阅支付允许用户根据特定时间间隔定期付费,而无需离开您的网站。接下来,我们将通过 PHP 实现以下功能:

  1. 创建 HTML 表单,用于选择订阅计划并提交信用卡信息。
  2. 使用 Stripe JS 库将 Stripe 卡元素附加到 HTML 表单。
  3. 通过 Stripe API 安全传输卡信息、验证并创建订阅。
  4. 使用 Stripe API 检索 PaymentIntent 和订阅信息。
  5. 通过 3D 安全身份验证(SCA)确认付款。
  6. 验证信用卡信息并创建订阅计划。
  7. 将交易数据和订阅信息存储到数据库,并显示付款状态。

文件结构

在开始之前,我们先看一下项目的文件结构:

stripe_subscription_payment_php/
├── config.php // 存放 Stripe API 和数据库配置
├── dbConnect.php // PHP 与 MySQL 数据库连接
├── index.php // Stripe 订阅表单
├── payment_init.php // 处理订阅付款
├── payment-status.php // 付款状态页面
├── stripe-php/ // Stripe PHP 库
├── js/
| └── checkout.js // 订阅结账处理脚本
└── css/
└── style.css // 页面样式

Stripe 测试 API 密钥

在正式上线之前,您需要测试订阅支付流程。以下是获取测试 API 密钥的步骤:

  1. 登录您的 Stripe 账户,并导航至 开发者 » API 密钥 页面。
  2. 测试数据 块中,找到 可发布密钥秘密密钥。单击 展示测试密钥 按钮即可查看。

创建数据库表

在数据库中创建以下三个表,用于存储订阅信息:

  1. plans:保存订阅套餐信息。
  2. users:保存会员信息。
  3. user_subscriptions:保存订阅信息。

以下是 user_subscriptions 表的创建语句:

sql
CREATE TABLE user_subscriptions (
id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL DEFAULT 0 COMMENT ‘users 表外键’,
plan_id int(5) DEFAULT NULL COMMENT ‘plans 表外键’,
payment_method enum(‘stripe’) COLLATE utf8_unicode_ci NOT NULL DEFAULT ‘stripe’,
stripe_subscription_id varchar(50) COLLATE utf8_unicode_ci NOT NULL,
stripe_customer_id varchar(50) COLLATE utf8_unicode_ci NOT NULL,
stripe_payment_intent_id varchar(50) COLLATE utf8_unicode_ci NOT NULL,
paid_amount float(10,2) NOT NULL,
paid_amount_currency varchar(10) COLLATE utf8_unicode_ci NOT NULL,
plan_interval varchar(10) COLLATE utf8_unicode_ci NOT NULL,
plan_interval_count tinyint(2) NOT NULL DEFAULT 1,
customer_name varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
customer_email varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
created datetime NOT NULL,
plan_period_start datetime DEFAULT NULL,
plan_period_end datetime DEFAULT NULL,
status varchar(50) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Stripe API 和数据库配置

config.php 文件中,设置 Stripe API 和数据库的常量变量:

php

启用 Stripe 支付网关

在完成 API 集成并测试成功后,您可以通过以下步骤启用 Stripe 支付网关:

  1. 登录您的 Stripe 账户,并导航至 开发者 » API 密钥 页面。
  2. 实时数据 部分获取 API 密钥(可发布密钥和秘密密钥)。
  3. config.php 文件中,将测试 API 密钥替换为实时 API 密钥。

总结

Stripe 订阅支付 API 是实现定期计费功能的最佳选择。通过本文的示例脚本,您可以轻松集成 Stripe 订阅支付功能,并支持 3D 安全身份验证(SCA)。根据您的需求,您还可以进一步扩展此脚本的功能。

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

上一篇 2025年7月28日
下一篇 2025年7月28日

热门推荐