Stripe WordPress Payment Gateway 插件
一个功能完整的 WordPress Stripe 支付网关插件,支持 Alipay、WeChat Pay、Stripe Link 三种支付方式,包含 3D Secure 验证、退款功能和 Webhook 事件监听。
功能特性
支持的支付方式
- 信用卡/借记卡 - 支持 3D Secure 验证
- Alipay - 支付宝国际版
- WeChat Pay - 微信支付国际版
- Stripe Link - Stripe 快速支付方式
核心功能
- ✅ 完整的支付流程处理
- ✅ 3D Secure 验证支持
- ✅ 退款功能(全额和部分退款)
- ✅ Webhook 事件监听(5 个关键事件)
- ✅ 支付记录管理
- ✅ 多货币支持
- ✅ 灵活的手续费配置
- ✅ 后台管理界面
- ✅ 安全的密钥管理
Webhook 事件监听
插件监听以下 5 个关键 Stripe Webhook 事件:
- charge.succeeded - 费用成功
- charge.refunded - 费用已退款
- checkout.session.completed - 结账会话完成
- payment_intent.payment_failed - 支付意图失败
- payment_intent.succeeded - 支付意图成功
安装步骤
1. 上传插件
Bash
# 将插件文件夹上传到 WordPress 插件目录 /wp-content/plugins/stripe-wp-gateway/
2. 激活插件
- 进入 WordPress 后台 → 插件
- 找到 "Stripe WordPress Payment Gateway"
- 点击 "激活"
3. 配置 Stripe 密钥
- 进入 WooCommerce → 设置 → 支付
- 找到 "Stripe Payment Gateway"
- 点击 "管理" 进行配置
配置指南
获取 Stripe API 密钥
-
登录 Stripe Dashboard
- 访问 https://dashboard.stripe.com
- 使用您的 Stripe 账户登录
-
获取 API 密钥
- 进入 Developers → API Keys
- 复制 Secret Key (sk_live_... )
- 复制 Publishable Key (pk_live_...)
-
配置 Webhook
- 进入 Developers → Webhooks
- 点击 "Add endpoint"
- 输入 Webhook URL:https://yoursite.com/wp-json/stripe-wp-gateway/v1/webhook
- 选择事件:
- charge.succeeded
- charge.refunded
- checkout.session.completed
- payment_intent.payment_failed
- payment_intent.succeeded
- 复制 Signing Secret (whsec_... )
插件设置
|
设置项
|
说明
|
示例
|
|---|---|---|
|
显示在订购表格上
|
是否在结账页面显示此支付方式
|
✓ 已启用
|
|
显示称号
|
支付方式名称
|
Stripe Payment Gateway
|
|
Stripe 秘密密钥
|
SK_LIVE 密钥
|
sk_live_...
|
|
Stripe 发布密钥
|
PK_LIVE 密钥
|
pk_live_...
|
|
Webhook 密钥
|
Webhook 签名密钥
|
whsec_...
|
|
收款货币
|
支持的货币列表
|
USD, EUR, GBP, CNY 等
|
|
手续费百分比
|
交易手续费百分比
|
2.9
|
|
固定手续费
|
固定交易费用
|
0.3
|
|
启用 3D Secure
|
是否启用 3D 验证
|
✓ 已启用
|
|
启用 Alipay
|
是否启用支付宝
|
✓ 已启用
|
|
启用 WeChat Pay
|
是否启用微信支付
|
✓ 已启用
|
|
启用 Stripe Link
|
是否启用 Stripe Link
|
✓ 已启用
|
数据库结构
插件创建以下数据库表:
1. stripe_payments - 支付记录表
SQL
CREATE TABLE stripe_payments (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
order_id BIGINT NOT NULL,
stripe_charge_id VARCHAR(255) UNIQUE NOT NULL,
stripe_payment_intent_id VARCHAR(255),
amount DECIMAL(10, 2) NOT NULL,
currency VARCHAR(3) NOT NULL,
payment_method VARCHAR(50),
status VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
2. stripe_refunds - 退款记录表
SQL
CREATE TABLE stripe_refunds (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
payment_id BIGINT NOT NULL,
order_id BIGINT NOT NULL,
stripe_refund_id VARCHAR(255) UNIQUE NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
reason VARCHAR(255),
status VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
3. stripe_webhook_logs - Webhook 日志表
SQL
CREATE TABLE stripe_webhook_logs (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
event_id VARCHAR(255) UNIQUE NOT NULL,
event_type VARCHAR(100),
payload LONGTEXT,
status VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
支付流程
前端支付流程
- 用户选择支付方式(卡片、Alipay、WeChat Pay 或 Stripe Link)
- 用户填写必要信息
- 点击 "下单" 按钮
- 前端创建 Payment Intent
- 根据支付方式确认支付
- 支付成功后提交订单
后端处理流程
- 接收支付数据
- 验证 Payment Intent 状态
- 标记订单为已支付
- 保存支付记录
- 清空购物车
- 返回成功页面
Webhook 处理流程
- Stripe 发送 Webhook 事件
- 验证 Webhook 签名
- 记录 Webhook 日志
- 根据事件类型处理
- 更新订单和支付记录状态
- 发送通知
退款处理
全额退款
- 进入 WooCommerce 订单详情
- 在订单项目中点击 "退款"
- 系统自动处理 Stripe 退款
- 订单状态更新为已退款
部分退款
- 进入 WooCommerce 订单详情
- 输入退款金额
- 点击 "退款"
- 系统处理部分退款
- 订单状态相应更新
安全性
密钥管理
- 所有 API 密钥存储在 WordPress 选项表中
- 密钥字段使用密码输入类型
- 建议使用环境变量存储敏感信息
Webhook 验证
- 所有 Webhook 请求都经过签名验证
- 使用 Stripe 提供的签名验证方法
- 防止伪造的 Webhook 请求
数据安全
- 支付数据不存储在本地
- 所有交易通过 Stripe 加密传输
- 遵守 PCI DSS 合规性要求
故障排除
常见问题
1. "Invalid API Key" 错误
- 检查 Stripe 密钥是否正确
- 确保使用的是 Live 密钥(sk_live_ 和 pk_live_)
- 验证密钥是否有效期内
2. Webhook 未收到
- 检查 Webhook 端点 URL 是否正确
- 验证 Webhook 签名密钥是否正确
- 检查防火墙是否允许 Stripe IP 地址
- 查看 Stripe Dashboard 中的 Webhook 日志
3. 支付失败
- 检查订单金额是否正确
- 验证货币设置是否与 Stripe 账户一致
- 查看 Stripe Dashboard 中的交易日志
- 检查 3D Secure 验证是否启用
4. 退款失败
- 确保订单已支付
- 检查退款金额是否不超过原交易金额
- 验证 Stripe 账户是否有退款权限
- 查看 Stripe Dashboard 中的退款日志
日志查看
支付记录
- 表名:wp_stripe_payments
- 查询:SELECT * FROM wp_stripe_payments WHERE order_id = {order_id}
退款记录
- 表名:wp_stripe_refunds
- 查询:SELECT * FROM wp_stripe_refunds WHERE order_id = {order_id}
Webhook 日志
- 表名:wp_stripe_webhook_logs
- 查询:SELECT * FROM wp_stripe_webhook_logs ORDER BY created_at DESC LIMIT 100
开发者文档
自定义 Hooks
支付成功
PHP
do_action('stripe_wp_gateway_charge_succeeded', $order, $charge);
do_action('stripe_wp_gateway_payment_intent_succeeded', $order, $intent);
支付失败
PHP
do_action('stripe_wp_gateway_payment_intent_failed', $order, $intent);
退款
PHP
do_action('stripe_wp_gateway_charge_refunded', $order, $charge);
结账完成
PHP
do_action('stripe_wp_gateway_checkout_completed', $order, $session);
自定义支付方式
在 stripe-payment.js 中添加新的支付方式:
JavaScript
// 在 initPaymentMethods() 函数中添加
html += '<label class="payment-method-option">';
html += '<input type="radio" name="stripe_payment_method" value="new_method" />';
html += '<span class="method-label">New Payment Method</span>';
html += '</label>';
// 在 handleCheckoutSubmit() 函数中添加处理逻辑
} else if (selectedPaymentMethod === 'new_method') {
result = await handleNewMethod(paymentIntentData.client_secret);
}
支持
如有问题或建议,请:
- 查看本文档的故障排除部分
- 检查 Stripe 官方文档:https://stripe.com/docs
- 查看 WooCommerce 官方文档:https://woocommerce.com/documentation/
- 联系插件开发者
许可证
本插件采用 GPL v2 或更高版本许可证 。详见 LICENSE 文件。
更新日志
v1.0.0 (2024-03-05)
- 初始版本发布
- 支持 Alipay、WeChat Pay、Stripe Link
- 3D Secure 验证
- 退款功能
- Webhook 事件监听
- 后台管理界面
VmShell支付插件地址:https://linuxword.com/wp-content/uploads/2026/03/vmshell-stripe-payment-v1.0.0-complete.zip

