商家认证
开发者中心

支付接入文档

云擎支付提供两套接入方式:面向新项目的 API v1(HMAC-SHA256),以及兼容彩虹易支付的 V1 协议。所有金额单位为元,保留两位小数;所有回调都必须验签。

1. API v1 鉴权

推荐

每次请求携带以下 Header:

X-Merchant-No
商户号,如 M261103000001
X-Timestamp
Unix 秒级时间戳,误差 300 秒内
X-Nonce
8-64 位随机串,不可重复
X-Signature
HMAC-SHA256 十六进制小写
signature = HMAC_SHA256(
  timestamp + "\n" +
  nonce + "\n" +
  METHOD + "\n" +
  path + "\n" +
  rawBody,
  api_secret
)

path 为请求路径(包含部署子目录),例如 /api/v1/orders。POST 的 rawBody 必须与实际发送的字节完全一致。

2. 创建订单

POST /api/v1/orders
{
  "out_trade_no": "ORDER20261103001",
  "subject": "测试商品",
  "amount": "0.01",
  "pay_type": "wxpay",
  "channel": "wechat_native",
  "notify_url": "https://merchant.com/notify",
  "return_url": "https://merchant.com/return",
  "param": "user_id=1001"
}

pay_type 可选:wxpay、alipay、qqpay、bank。channel 可选,指定后优先使用该通道。返回:

{
  "ok": true,
  "data": {
    "trade_no": "CP20261103010203000001",
    "amount": "0.01",
    "status": "pending",
    "pay_url": "https://pay.example.com/pay/CP...",
    "expires_at": "2026-11-03 12:30:00"
  }
}

将用户浏览器跳转到 pay_url 完成支付。查询订单:GET /api/v1/orders/{trade_no}。

3. 异步通知

必须验签

支付成功后,平台以 application/x-www-form-urlencoded POST 到订单 notify_url:

pid=M261103000001
trade_no=CP20261103010203000001
out_trade_no=ORDER20261103001
type=wxpay
name=测试商品
money=0.01
trade_status=TRADE_SUCCESS
param=user_id=1001
sign=...
sign_type=MD5

验签算法:排除 sign、sign_type 与空值,按参数名 ASCII 升序拼接 k=v&...,末尾直接追加商户 api_secret,计算 MD5 小写。校验金额、订单号与 trade_status 后,返回纯文本 success。

不要只依赖同步跳转结果发货。同步跳转可能被用户关闭或篡改,异步通知才是最终依据。

易支付 V1 兼容

彩虹易支付
页面支付
https://pay.shengka.net/submit.php
API 下单
https://pay.shengka.net/mapi.php
查询接口
https://pay.shengka.net/api.php
商户 ID
商户号 merchant_no
商户密钥
商户 api_secret
POST https://pay.shengka.net/mapi.php
pid=M261103000001
type=alipay
out_trade_no=ORDER20261103001
name=测试商品
money=0.01
notify_url=https://merchant.com/notify
return_url=https://merchant.com/return
sign=MD5签名
sign_type=MD5

返回 JSON:code=1、trade_no、payurl / qrcode。查询:api.php POST act=order&pid=...&key=...&out_trade_no=...。

订单状态

pending
待支付,等待用户选择通道
paying
已向上游发起支付,等待回调
review
手工二维码已提交付款确认,等待核销
success
支付成功,已入账并触发通知
expired
超过有效期自动关闭
refunded
已全额退款

安全清单

始终验签
回调必须用商户密钥验签,并核对金额与订单号
幂等处理
同一 trade_no 重复通知只处理一次
保护密钥
api_secret 只放在服务端,不写入前端或日志
公网可达
notify_url 必须公网可访问,不能带登录态或 CSRF 校验

快速自测

使用商户后台“API 对接”页生成的 PHP 示例,创建 0.01 元订单。也可用 curl:

curl -X POST "https://pay.shengka.net/api/v1/orders" \
  -H "Content-Type: application/json" \
  -H "X-Merchant-No: 你的商户号" \
  -H "X-Timestamp: 时间戳" \
  -H "X-Nonce: 随机串" \
  -H "X-Signature: 签名" \
  -d '{"out_trade_no":"TEST001","subject":"测试","amount":"0.01"}'
⌕订单查询 !平台公告