🐔 小鸡统一支付网关

API 接口文档 v1.0

📝 基础信息

Base URL: https://payv.xiaojiaixhs.com

编码格式: UTF-8

数据格式: JSON

支付方式: 微信JSAPI支付 / 支付宝H5支付

统一响应格式

{
  "code": 0,           // 0表示成功,非0表示失败
  "message": "success",// 响应消息
  "data": { ... }      // 响应数据(可选)
}

常见错误码

错误码 说明
0 成功
1 通用错误(具体见message)
-1 参数错误
-2 系统错误

1️⃣ 获取用户OpenID

通过微信网页授权获取用户OpenID(必须在微信浏览器中访问)

GET /api/get_openid.php

请求参数

参数名 类型 必填 说明
redirect String 授权成功后的回调地址(会自动追加openid参数)

使用方式

方式1:重定向方式

// 跳转到授权页面,授权后返回指定页面并带上openid
window.location.href = 'https://payv.xiaojiaixhs.com/api/get_openid.php?redirect=' +
    encodeURIComponent('https://your-page.com/pay.html');

方式2:直接获取JSON

// 不传redirect参数,授权后返回JSON
GET https://payv.xiaojiaixhs.com/api/get_openid.php

成功响应(JSON方式)

{
  "code": 0,
  "message": "获取OpenID成功",
  "data": {
    "openid": "oHaZG6jqqQXeLZTm4DXIzO-zNsJ8",
    "access_token": "ACCESS_TOKEN",
    "expires_in": 7200
  }
}

完整示例页面

<!-- pay.html -->
<script>
// 页面加载时检查是否有openid
window.onload = function() {
    const urlParams = new URLSearchParams(window.location.search);
    const openid = urlParams.get('openid');

    if (openid) {
        // 已获取到openid,可以进行支付
        console.log('用户OpenID:', openid);
    } else {
        // 跳转获取openid
        const currentUrl = window.location.href.split('?')[0];
        window.location.href = 'https://payv.xiaojiaixhs.com/api/get_openid.php?redirect=' +
            encodeURIComponent(currentUrl);
    }
};
</script>

⚠️ 注意事项:

  • 必须在微信浏览器中访问
  • 需要在公众平台配置网页授权域名
  • 使用静默授权(snsapi_base),用户无感知

2️⃣ 创建微信支付订单

创建微信JSAPI支付订单,返回前端所需的支付参数

POST /api/create_order.php

请求参数

参数名 类型 必填 说明
openid String 用户的微信OpenID
body String 商品描述(最多128字符)
total_fee Integer 订单金额(单位:分)
out_trade_no String 商户订单号(不传则自动生成)
attach String 附加数据,支付回调时原样返回

请求示例

POST /api/create_order.php
Content-Type: application/json

{
  "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
  "body": "测试商品-iPhone 15 Pro",
  "total_fee": 999900,
  "attach": "order_data_123"
}

成功响应

{
  "code": 0,
  "message": "订单创建成功",
  "data": {
    "out_trade_no": "20241126153022123456",
    "prepay_id": "wx261530229abcdef1234567890",
    "jsapi_params": {
      "appId": "wx3760xxxxxxxxxxxx",
      "timeStamp": "1732606222",
      "nonceStr": "abc123def456",
      "package": "prepay_id=wx261530229abcdef1234567890",
      "signType": "MD5",
      "paySign": "C380BEC2BFD727A4B6845133519F3AD6"
    },
    "timestamp": 1732606222
  }
}

前端调用示例

// 使用微信JSSDK发起支付
wx.chooseWXPay({
  timestamp: data.jsapi_params.timeStamp,
  nonceStr: data.jsapi_params.nonceStr,
  package: data.jsapi_params.package,
  signType: data.jsapi_params.signType,
  paySign: data.jsapi_params.paySign,
  success: function(res) {
    console.log('支付成功', res);
  },
  fail: function(res) {
    console.log('支付失败', res);
  }
});

3️⃣ 创建支付宝支付订单

创建支付宝H5支付订单,自动跳转到支付宝收银台

POST /api/create_alipay_order.php

请求参数

参数名 类型 必填 说明
body String 商品描述(最多128字符)
total_fee Integer 订单金额(单位:分)
out_trade_no String 商户订单号(不传则自动生成,以"ALI"开头)

请求示例

POST /api/create_alipay_order.php
Content-Type: application/json

{
  "body": "测试商品-iPhone 15 Pro",
  "total_fee": 100
}

成功响应

{
  "code": 0,
  "message": "订单创建成功",
  "data": {
    "out_trade_no": "ALI20251209181049633538",
    "payment_method": "alipay",
    "pay_html": "<form id='alipaysubmit'...>...</form><script>...</script>",
    "timestamp": 1733743849
  }
}

前端使用方式

方式1:直接页面跳转(推荐)

fetch('https://payv.xiaojiaixhs.com/api/create_alipay_order.php', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    body: '测试商品',
    total_fee: 100  // 1元
  })
})
.then(res => res.json())
.then(data => {
  if (data.code === 0) {
    // 将支付HTML写入当前页面,自动跳转支付宝
    document.open();
    document.write(data.data.pay_html);
    document.close();
  }
});

方式2:快速支付页面(无需编码)

// 直接访问快速支付页面(默认1元)
window.location.href = 'https://payv.xiaojiaixhs.com/alipay_pay.php';

// 或使用完整测试页面(可自定义金额)
window.location.href = 'https://payv.xiaojiaixhs.com/test_alipay.html';

支付流程说明

  1. 创建支付宝订单,订单状态为 "pending"
  2. 返回支付HTML表单,包含自动提交脚本
  3. 页面自动跳转到支付宝收银台,订单状态更新为 "paying"
  4. 用户完成支付
  5. 支付宝异步回调 /api/alipay_notify.php,更新订单为 "success"
  6. 用户跳转到 /api/alipay_return.php 查看支付结果

⚠️ 注意事项:

  • 支付宝H5支付需要在手机浏览器中访问
  • 支付完成后会自动跳转到同步回调页面
  • 订单状态由异步回调自动更新,无需手动处理
  • 所有回调日志保存在 cache/alipay_notify_日期.log

回调地址配置

回调类型 URL 说明
异步通知 https://payv.xiaojiaixhs.com/api/alipay_notify.php 支付成功后由支付宝服务器调用,更新订单状态
同步回调 https://payv.xiaojiaixhs.com/api/alipay_return.php 支付完成后用户跳转的页面,显示支付结果

4️⃣ 查询订单状态

根据商户订单号查询订单支付状态

GET /api/query_order.php

请求参数

参数名 类型 必填 说明
out_trade_no String 商户订单号

请求示例

GET /api/query_order.php?out_trade_no=20241126153022123456

成功响应

{
  "code": 0,
  "message": "查询成功",
  "data": {
    "out_trade_no": "20241126153022123456",
    "transaction_id": "4200001234567890",
    "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
    "body": "测试商品-iPhone 15 Pro",
    "total_fee": 999900,
    "total_fee_yuan": "9999.00",
    "status": "success",
    "status_text": "支付成功",
    "pay_time": "2024-11-26 15:32:10",
    "created_at": "2024-11-26 15:30:22"
  }
}

订单状态说明

状态值 说明
pending 待支付
paying 支付中
success 支付成功
closed 已关闭

5️⃣ 支付回调通知

微信/支付宝支付成功后的异步回调通知(由支付服务器调用)

POST /api/notify.php

说明:此接口由支付服务器调用,开发者无需手动调用。

微信配置:在管理后台配置notify_url为: https://payv.xiaojiaixhs.com/api/notify.php

支付宝配置:异步通知URL为: https://payv.xiaojiaixhs.com/api/alipay_notify.php

验证:接口会自动验证签名和金额,确保支付数据安全。

日志:所有回调记录会保存在 cache/ 目录下的对应日志文件中。

微信回调数据格式(XML)

<xml>
  <appid><![CDATA[wx3760xxxxxxxxxxxx]]></appid>
  <mch_id><![CDATA[1234567890]]></mch_id>
  <nonce_str><![CDATA[abc123]]></nonce_str>
  <sign><![CDATA[SIGN]]></sign>
  <result_code><![CDATA[SUCCESS]]></result_code>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <out_trade_no><![CDATA[20241126153022123456]]></out_trade_no>
  <transaction_id><![CDATA[4200001234567890]]></transaction_id>
  <total_fee>999900</total_fee>
  <time_end><![CDATA[20241126153210]]></time_end>
</xml>

微信支付回调处理流程

  1. 接收微信回调数据(XML格式)
  2. 验证签名有效性
  3. 检查支付状态(SUCCESS)
  4. 验证订单金额
  5. 更新订单状态为"支付成功"
  6. 返回"SUCCESS"给微信

支付宝支付回调

POST /api/alipay_notify.php

支付宝回调数据格式(POST)

// 支付宝会通过POST发送以下参数
{
  "trade_status": "TRADE_SUCCESS",
  "out_trade_no": "ALI20251209181049633538",
  "trade_no": "2025120923001466291413012987",
  "total_amount": "1.00",
  "buyer_logon_id": "131****0452",
  "gmt_payment": "2025-12-09 18:11:02",
  "sign": "..."  // RSA2签名
}

支付宝回调处理流程

  1. 接收支付宝回调数据(POST参数)
  2. 验证RSA2签名有效性
  3. 检查交易状态(TRADE_SUCCESS 或 TRADE_FINISHED)
  4. 验证订单金额
  5. 更新订单状态为"支付成功",记录支付宝交易号
  6. 返回"success"字符串给支付宝

💡 回调日志文件:

  • 微信支付:cache/notify_YYYY-MM-DD.log
  • 支付宝支付:cache/alipay_notify_YYYY-MM-DD.log
  • 支付宝同步回调:cache/alipay_return_YYYY-MM-DD.log

💡 完整使用示例

场景:用户在微信浏览器中购买商品

// Step 1: 获取用户OpenID
const urlParams = new URLSearchParams(window.location.search);
let userOpenid = urlParams.get('openid');

if (!userOpenid) {
    // 跳转获取openid
    const currentUrl = window.location.href.split('?')[0];
    window.location.href = 'https://payv.xiaojiaixhs.com/api/get_openid.php?redirect=' +
        encodeURIComponent(currentUrl);
    // 授权后会带openid参数返回
}

// Step 2: 创建订单
fetch('http://payv.xiaojiaixhs.com/api/create_order.php', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    openid: userOpenId,
    body: '商品名称',
    total_fee: 100  // 1元 = 100分
  })
})
.then(res => res.json())
.then(data => {
  if (data.code === 0) {
    // Step 3: 调起微信支付
    const params = data.data.jsapi_params;
    wx.chooseWXPay({
      timestamp: params.timeStamp,
      nonceStr: params.nonceStr,
      package: params.package,
      signType: params.signType,
      paySign: params.paySign,
      success: function() {
        // Step 4: 支付成功,查询订单确认
        checkOrderStatus(data.data.out_trade_no);
      }
    });
  }
});

// 查询订单状态
function checkOrderStatus(orderNo) {
  fetch(`http://payv.xiaojiaixhs.com/api/query_order.php?out_trade_no=${orderNo}`)
    .then(res => res.json())
    .then(data => {
      if (data.code === 0 && data.data.status === 'success') {
        alert('支付成功!');
      }
    });
}

⚠️ 注意事项

支付方式对比

特性 微信JSAPI支付 支付宝H5支付
环境要求 必须在微信浏览器 任何手机浏览器
需要OpenID
跳转方式 JSSDK调起支付 自动跳转收银台
订单号前缀 数字 ALI
创建接口 /api/create_order.php /api/create_alipay_order.php
异步回调 /api/notify.php /api/alipay_notify.php
同步回调 /api/alipay_return.php

📧 技术支持

如有问题,请访问管理后台查看订单日志

快速测试链接

文档更新时间:2025-12-09(新增支付宝H5支付)