N支付 开发文档

微信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分钟,超时请求将被拒绝。

1. 统一下单

POST/api/pay/order
参数类型必填说明
app_idstring必填商户AppID
timestampstring必填当前时间戳(秒)
signstring必填MD5签名
out_trade_nostring必填商户订单号(唯一)
amountnumber必填金额(元,如100.00)
descriptionstring可选商品描述
notify_urlstring可选支付成功回调地址

请求示例

{
  "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 为微信原始支付链接,商户也可自行处理。

2. 查询订单

POST/api/pay/query
参数类型必填说明
app_idstring必填商户AppID
timestampstring必填时间戳
signstring必填MD5签名
order_nostring二选一系统订单号
out_trade_nostring二选一商户订单号

3. 申请退款

POST/api/pay/refund
参数类型必填说明
app_idstring必填商户AppID
timestampstring必填时间戳
signstring必填MD5签名
order_nostring二选一系统订单号
out_trade_nostring二选一商户订单号
refund_amountnumber必填退款金额(元)
reasonstring可选退款原因

异步通知

支付成功通知

支付成功后,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无权限