Woocommerce内置没有提供rest api支付接口的,在用woocommerce二次开发写商城小程序时,这个插件可用于扩展woocommerce rest api支付功能,目前仅支持支付宝支付。
一、插件简介
- 插件名称:xenice-pay
- 当前版本:v1.0.3(发布于 2023.02.22)
- 支持支付方式:仅支付宝(
alipay_f2f和alipay_phone) - 适用场景:WooCommerce + 小程序 / H5 / 移动端二次开发
- 核心功能:通过 REST API 提供支付方式查询、发起支付请求、接收异步通知
后台设置截图

二、REST API 接口说明
1. 获取可用支付方式列表
接口路径:GET /wp-json/xe/v1/pay-ways
请求参数:
frontend(必填):前端类型,例如:'h5':普通网页'wxh5':微信内嵌 H5'weixin':微信小程序'qq'、'baidu'等(预留扩展)
返回示例:
json编辑[
{
"name": "支付宝支付",
"value": "alipay_f2f",
"icon": "alipay"
},
{
"name": "支付宝手机支付",
"value": "alipay_phone",
"icon": "alipay"
}
]
该接口可根据不同前端环境动态返回支持的支付方式,便于前端灵活适配。
2. 发起支付请求
接口路径:POST /wp-json/xe/v1/pay-ways
请求参数:
| 参数 | 说明 |
|---|---|
pay_way | 支付方式(alipay_f2f 或 alipay_phone) |
token | 当前用户身份标识(用于支付成功后验证) |
openid | (预留)微信支付时使用,当前可忽略 |
trade_order_id | WooCommerce 订单 ID |
total_fee | 订单金额(单位:元) |
title | 支付标题(如商品名称) |
return_url | 支付成功后跳转的 URL(主要用于 H5 场景) |
返回结果(当面付 – alipay_f2f):
{
"order_sn": "123456",
"qr_code": "https://example.com/qrcode.png",
"token": "user_token_abc123",
"price": "99.00",
"title": "购买商品A",
"payway": "alipay_f2f",
"way": "alipay",
"wayname": "支付宝支付"
}
前端可使用
qr_code字段生成二维码供用户扫码支付。
返回结果(手机支付 – alipay_phone):
{
"payway": "alipay_phone",
"url": "https://openapi.alipay.com/gateway.do?..."
}
前端应跳转此 URL,自动唤起支付宝 App 完成支付(适用于 APP 内或支持 scheme 跳转的环境)。
三、支付成功回调处理
插件在接收到支付宝的异步通知(notify_url)后,会触发 WordPress 钩子:
do_action('xenice_pay_alipay_notify', $request);
开发者可在主题 functions.php 或自定义插件中挂载回调函数,处理订单状态更新、库存扣减、发送通知等逻辑:
add_action('xenice_pay_alipay_notify', function($request) {
$order_id = $request['trade_order_id'];
$order = wc_get_order($order_id);
if ($order && $order->get_status() !== 'completed') {
$order->payment_complete(); // 标记为已支付
$order->add_order_note('支付宝支付成功回调');
// 可继续添加积分、发邮件等操作
}
});
⚠️ 注意:务必验证通知来源合法性(如签名验证),防止伪造请求。