商家SDK测试接入说明 测试模式
用于商家上线前联调:验证 SDK 加载、授权商品展示、创建测试订单、模拟成功/失败、订单查询、通知验签/重推。测试模式 不扣商户余额、不产生真实履约。
推荐流程:加载 SDK → 创建 testMode=true 测试订单 → 调 order-pay-test 或 order-fail-test → 查询订单 → 检查商家通知。
可视化入口:登录商户中心后,左侧菜单【联调测试】可直接创建TEST订单、模拟成功/失败、查询订单。
一、商户后台可视化联调
- 登录商户中心,进入左侧菜单 联调测试。
- 确认商户ID、测试产品、手机号/测试金额。
- 填写
notifyUrl:这是商家服务端接收订单结果通知的地址。
- 点击 ① 创建TEST订单,成功后会返回
TEST 开头订单号,状态为 WAIT_PAY。
- 点击 ② 模拟成功 或 模拟失败,平台会把订单改成
SUCCESS 或 FAIL,并向 notifyUrl 推送测试通知。
- 点击 ③ 查询订单,验收
deductAmount=0、测试处理状态、订单状态符合预期。
注意:测试通知地址必须由商家服务端提供并返回 2xx;如果返回 4xx/5xx,会进入通知重试记录,这是正常的联调验证。
二、商家需要做什么
| 步骤 | 商家动作 | 说明 |
| 1 | 页面嵌入SDK | 用商户中心【SDK接入】里的 script 代码嵌入商家页面。 |
| 2 | 接收订单事件 | 用户在SDK里下单后,商家拿到订单号,可跳转自己的收银台。 |
| 3 | 测试模式创建订单 | 联调阶段传 testMode=true,订单号以 TEST 开头。 |
| 4 | 处理通知 | 按通知里的订单号、状态、签名做验签和幂等处理。 |
| 5 | 正式上线 | 去掉 testMode=true;正式支付确认调用 order-pay。 |
三、测试结果怎么看
| 字段/现象 | 正确结果 |
| 订单号 | TEST... |
| 成功模拟 | orderStatus=SUCCESS,事件 ORDER_SUCCESS_TEST |
| 失败模拟 | orderStatus=FAIL,事件 ORDER_FAIL_TEST |
| 扣款金额 | deductAmount=0,不会扣商户余额 |
四、接口方式联调:创建测试订单
POST /prod-api/openapi/v1/sdk/order-create?merchantId=商户ID
Content-Type: application/json
Origin: https://商家已授权域名
{
"merchantId": 1,
"typeCode": "PrepaidRefill",
"testMode": true,
"phoneNumber": "13800138000",
"faceValue": "0.01",
"notifyUrl": "https://merchant.example.com/notify"
}
返回订单号以 TEST 开头,并返回测试支付入口。
五、接口方式联调:模拟成功/失败
POST /prod-api/openapi/v1/sdk/order-pay-test?merchantId=商户ID
{"merchantId":1,"orderNo":"TEST..."}
POST /prod-api/openapi/v1/sdk/order-fail-test?merchantId=商户ID
{"merchantId":1,"orderNo":"TEST..."}
3. 测试模式语义
| 能力 | 测试模式行为 |
| 订单创建 | 生成本地 WAIT_PAY 测试订单,订单号 TEST... |
| 模拟支付成功 | 订单置为 SUCCESS,deductAmount=0,测试处理状态 |
| 模拟支付失败 | 订单置为 FAIL,不扣款、不产生真实履约 |
| 下游通知 | 照常按订单中的 notifyUrl/callbackUrl 推送测试事件 |
| 真实履约 | 不会产生真实权益订单 |
4. 商家上线验收清单
- SDK 可以在授权域名加载。
- 授权商品展示正确。
- 测试订单创建成功。
- 模拟成功/失败状态都能处理。
- 商家通知地址能收到通知并完成验签。
- 重复通知/重推通知能幂等处理。
正式模式不要传 testMode=true,并使用正式 order-pay。正式支付会扣商户余额并进入正式处理流程。