微信Native支付中转服务 API v1.0
N支付是微信Native支付信息中转系统。商户通过API发起交易,系统调用微信Native支付完成收款,支付成功后异步通知商户系统。
1. 商户系统 → POST /api/pay/order → N支付创建订单 2. N支付 → 微信Native下单 → 返回code_url(支付链接) 3. 消费者 → 扫码支付 → 微信完成收款 4. 微信 → 回调N支付 → N支付更新订单状态 5. N支付 → 回调商户notify_url → 商户系统确认收款
所有API请求需携带签名参数,用于身份验证和防篡改。
sign = MD5(app_id + app_secret + timestamp)
1. 获取app_id和app_secret(商户后台「API密钥」页面)
2. 获取当前时间戳 timestamp = Math.floor(Date.now() / 1000)
3. 拼接字符串: str = app_id + app_secret + timestamp
4. 计算: sign = MD5(str)
示例:
app_id = "np_abc123"
app_secret = "secret456"
timestamp = "1718179200"
str = "np_abc123secret4561718179200"
sign = MD5("np_abc123secret4561718179200") = "a1b2c3d4..."
⚠️ timestamp容差为5分钟,超时请求将被拒绝。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | 必填 | 商户AppID |
| timestamp | string | 必填 | 当前时间戳(秒) |
| sign | string | 必填 | MD5签名 |
| out_trade_no | string | 必填 | 商户订单号(唯一) |
| amount | number | 必填 | 金额(元,如100.00) |
| description | string | 可选 | 商品描述 |
| notify_url | string | 可选 | 支付成功回调地址 |
{
"app_id": "np_abc123def456",
"timestamp": "1718179200",
"sign": "a1b2c3d4e5f6...",
"out_trade_no": "ORDER_20260612001",
"amount": 100.00,
"description": "测试商品",
"notify_url": "https://your-site.com/callback"
}
{
"code": 0,
"message": "success",
"data": {
"order_no": "N20260612154300001234",
"out_trade_no": "ORDER_20260612001",
"pay_url": "https://n.1.taolianwl.cn/pay/N20260612154300001234",
"code_url": "weixin://wxpay/bizpayurl?pr=xxx",
"amount": "100.00",
"expire_minutes": 30
}
}
💡 pay_url 是消费者支付链接,直接打开即可看到支付页面(含二维码)。商户可将此链接嵌入按钮/短信/邮件等场景。code_url 为微信原始支付链接,商户也可自行处理。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | 必填 | 商户AppID |
| timestamp | string | 必填 | 时间戳 |
| sign | string | 必填 | MD5签名 |
| order_no | string | 二选一 | 系统订单号 |
| out_trade_no | string | 二选一 | 商户订单号 |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | 必填 | 商户AppID |
| timestamp | string | 必填 | 时间戳 |
| sign | string | 必填 | MD5签名 |
| order_no | string | 二选一 | 系统订单号 |
| out_trade_no | string | 二选一 | 商户订单号 |
| refund_amount | number | 必填 | 退款金额(元) |
| reason | string | 可选 | 退款原因 |
支付成功后,N支付向商户notify_url发送POST请求:
{
"event": "payment.success",
"order_no": "N20260612154300001234",
"out_trade_no": "ORDER_20260612001",
"amount": "100.00",
"status": "paid",
"wechat_transaction_id": "4200001234202606...",
"paid_at": "2026-06-12T15:43:00.000Z",
"timestamp": "1718179200",
"sign": "MD5(app_id + app_secret + timestamp)"
}
商户需返回 SUCCESS 或 HTTP 200 表示接收成功。
| code | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 通用错误 |
| 401 | 未登录/Token无效 |
| 403 | 无权限 |