接入测试通道
版本:v1.0 / 更新时间:2026-09-17 / 适用环境:正式环境提供的接入测试通道(正式环境以发布通知为准)
联调测试账户(可直接使用)
为便于接入方快速联调,平台提供公开的联调测试账户。该账户不绑定任何资金、不授权任何正式产品,仅可用于本页所述的测试通道;使用该账户调用正式业务接口会被平台拒绝,因此不存在产生真实交易的风险。
| 项目 | 值 |
|---|---|
| 商户号 merchantId | 9999 |
| 应用 ID app_id | app_9999_09ec04164668b71c |
| 接入密钥 app_secret | RCTel88OVifTyQ5op8fR1YH06YSe1WADA77gjw8CIxQcnz1d |
| 异步通知验签密钥 | 与接入密钥相同 |
| 可测试产品 | 平台当前已启用产品均可测(见下方可测试产品清单),无需单独授权 |
该账户密钥为公开信息,仅供协议联调使用;请勿将其用于任何真实业务或生产环境。接入方正式上线前,请使用平台为其开通的正式商户与应用凭据。
用途
接入方在正式环境联调时,可用本测试通道完整验证下单、支付结果、订单状态、异步通知的对接是否正确,全部过程不扣减商户资金、不提交上游履约。
测试订单号以 TEST 开头;测试订单的异步通知事件名为 ORDER_SUCCESS_TEST / ORDER_FAIL_TEST,便于接入方与正式订单区分。
可测试产品清单
下表为平台当前已启用的全部产品,测试账户可直接使用其中任一编码联调,无需单独授权。若产品编码未在下表中,说明该产品当前未在正式环境启用。
| 产品编码 typeCode | 产品名称 | 接口编码 interfaceTypeCode |
|---|---|---|
Cake | 蛋糕外卖 | cake2_interface |
Cakecategory | 蛋糕 | cake_interface |
Hotel | 酒店 | hotel_two_interface |
Scenic | 景区门票 | scenic_spot_interface |
Taxi | 打车 | taxi_interface |
MarketDD | 叮咚买菜 | ding_dong_interface |
MarketJD | 京东 | jd_mall_interface |
PrepaidRefill | 话费充值 · 文档 | directcharge_interface |
Weg | 水电燃气 | weg_interface |
MeituanWaimai | 美团外卖H5 · 文档 | mt_waimai_interface |
MeituanTuan | 美团团购H5 | mt_canyin_interface |
FreshMart | 小象超市H5 | mt_maicai_interface |
UnionGas | 中石化中石油展码付 | union_gas_interface |
BestwayHotel | 锦江酒店 | bestway_hotel_interface |
MovieThree | 电影V3 | movie_three_interface |
DirectchargeNew | 移动充值 | directcharge_new_interface |
DirectchargeLitter | 话费小额充值 | directcharge_litter_interface |
AirTicketH5 | 飞机票H5 | domestic_air_tickets_h5_interface |
TrainH5 | 火车票H5 | train_h5_interface |
MarketJDH5 | 京东H5 | jd_mall_h5_interface |
HotelH5 | 酒店H5 | hotel_h5_interface |
FoodH5 | 大牌到店H5 · 文档 | food_bigbrand_h5_interface |
MeituanWaimaiCD | 美团外卖(中国道) | mt_waimai_cd_interface |
清单同步时间:2026-09-17(共 23 个产品)。已发布独立协议页的产品,另有「文档」链接可查看该产品的正式接入契约;产品清单以平台当前启用状态为准,新增产品会在此更新。
一、各接入形态的测试方式
| 接入形态 | 测试接口 | 正式接口 |
|---|---|---|
| 服务端 API | POST /openapi/v1/order/create-test | POST /openapi/v1/order/create |
| API 模拟支付结果 | POST /openapi/v1/order/pay-test(成功)POST /openapi/v1/order/fail-test(失败) | 接入方真实收银成功后调用支付确认接口 |
| H5 页面 | POST /openapi/v1/h5/access-test | POST /openapi/v1/h5/access |
| H5 模拟支付结果 | 打开测试入口返回的 h5Url,页面内点击模拟支付结果 | 用户在上游页面内真实支付 |
| 前端 SDK | /openapi/v1/sdk/order-create 传 testMode=true,再调用响应中的 payTestUrl / failTestUrl | 去掉 testMode 后即为正式流程 |
所有测试接口的鉴权方式与对应正式接口一致:服务端 API 使用 app_id / timestamp / nonce / sign 请求头;前端 SDK 使用已登记域名的来源校验。
二、签名规则(服务端 API 测试接口)
签名串(逐行):
POST
{请求路径}
{timestamp}
{nonce}
{原始JSON请求体}
sign = Base64UrlNoPadding(HMAC-SHA256(appSecret, 签名串))
| Header | 必填 | 说明 |
|---|---|---|
app_id | 是 | 开放平台应用 ID。 |
timestamp | 是 | 秒级时间戳。 |
nonce | 是 | 随机字符串,建议每次请求唯一。 |
sign | 是 | 按上式计算的签名。 |
第 5 行必须是实际发送的原始 JSON 字符串,不能改字段顺序、不能重新格式化。
三、服务端 API 接入测试流程
1. 测试下单
POST /openapi/v1/order/create-test
{ "typeCode": "PrepaidRefill", "amount": 100, "outTradeNo": "mch20260917001" }
{
"code": 200,
"data": {
"orderNo": "TEST202609171047531981",
"orderStatus": "WAIT_PAY",
"testMode": true,
"payTestUrl": "/openapi/v1/order/pay-test",
"failTestUrl": "/openapi/v1/order/fail-test",
"message": "测试订单已创建…不扣款、不调用上游。"
}
}
2. 模拟支付成功 / 失败
POST /openapi/v1/order/pay-test
{ "orderNo": "TEST202609171047531981" }
{
"code": 200,
"data": {
"orderNo": "TEST202609171047531981",
"orderStatus": "SUCCESS",
"upstreamStatus": "MOCK",
"deductAmount": "0",
"message": "测试支付成功:未扣款,未调用上游,已触发测试通知"
}
}
调用 fail-test 时订单状态为 CLOSED。两种情况都会向接入方配置的 notifyUrl 发出测试事件通知,用于验证接入方的通知接收与验签。
四、H5 接入测试流程
POST /openapi/v1/h5/access-test
{ "typeCode": "FoodH5", "outTradeNo": "mch20260917001", "mobile": "13800138000", "userId": "u1001" }
{
"code": 200,
"data": {
"typeCode": "FoodH5",
"interfaceTypeCode": "food_bigbrand_h5_interface",
"mode": "testCashier",
"orderNo": "TEST202609171200001234",
"testMode": true,
"h5Url": "https://api.laifuagi.cn/sdk/test-cashier.html?orderNo=...&merchantId=..."
}
}
打开 h5Url 即进入测试收银台,页面内可查看订单信息并点击「模拟支付成功 / 模拟支付失败」,验证接入方的支付结果接收与订单状态更新。
页面由平台域名承载,接入方需将平台域名登记在允许域名中(与正式 H5 入口的要求一致)。
五、前端 SDK 接入测试流程
POST /openapi/v1/sdk/order-create?merchantId={商户号}
{ "merchantId": 11, "typeCode": "PrepaidRefill", "testMode": true, "amount": 100 }
响应中的 payTestUrl / failTestUrl 即模拟支付结果入口。正式上线时去掉 testMode 参数即可,其余参数不变。
六、测试订单与正式订单的区别
| 项目 | 测试订单 | 正式订单 |
|---|---|---|
| 订单号前缀 | TEST | 正常订单号 |
| 商户资金 | 不扣减、不冻结(资金流水为 0) | 按业务规则扣减 |
| 上游履约 | 不提交(上游状态为 MOCK) | 真实提交上游 |
| 异步通知事件 | ORDER_SUCCESS_TEST / ORDER_FAIL_TEST | ORDER_SUCCESS / ORDER_FAIL 等 |
七、联调完成后的上线动作
| 接入形态 | 变更项 |
|---|---|
| 服务端 API | 请求地址由 /openapi/v1/order/create-test 改为 /openapi/v1/order/create,去掉 pay-test / fail-test 调用,改由真实收银结果驱动支付确认;业务参数不变。 |
| H5 | 请求地址由 /openapi/v1/h5/access-test 改为 /openapi/v1/h5/access;业务参数不变。 |
| 前端 SDK | 去掉 testMode=true。 |
八、常见问题
| 提示 | 含义 |
|---|---|
| 缺少必要参数: app_id, timestamp, nonce, sign | 请求未携带签名头,按第二节规则补齐。 |
| 签名错误或应用不存在 | 检查 app_id、密钥、签名串、时间戳与 nonce。 |
| 未授权该产品,请联系管理员开通 | 当前商户未开通该产品,需在平台侧完成产品授权。 |
| 仅支持测试订单(TEST 前缀) | 测试支付结果接口只对测试订单生效,正式订单请走正式支付确认接口。 |
| 订单不存在 | 订单号不属于当前应用所属商户,或订单号有误。 |
九、能力边界
- 测试通道只验证协议的连通性、字段与通知格式,不代表正式链路已具备商用条件;上游履约能力仍需按各产品文档验收。
- 测试订单会保留在平台订单记录中,请勿用于真实对账。
- 正式环境的接口开放范围以平台发布通知为准。