Skip to content

APP 下单

APP 下单接口,适用于 APP 拉起微信小程序完成支付;

对接流程:

1.商户提前准备好小程序(提前申请微信小程序);

2.商户完成微信小程序托管授权 (授权码找商务经理获取);

3.联系对接商务经理协助发布小程序;

4.调试本接口完成预下单;

请求路径/pay/apporder
请求方法POST

请求参数

公共参数

参数名称类型必填说明
key标识string开发者唯一标识
time时间戳string当前 unix 时间戳,精确到秒
sign数据签名string数据签名,详见 签名算法
data业务参数JSON string业务参数,详见下例表格

业务参数

参数名称类型必填说明
terminal终端码string终端码,详见控台终端管理
sequence流水号string订单流水号
amount金额string订单金额,保留 2 位小数,如:100.00,最小 0.01
notifyurl异步通知地址string交易异步通知地址
appid小程序 APPIDstring小程序 appid,支付公司小程序已经不给商户用了,所以商户必填自己的
subject订单主题string订单主题
detail订单详情string订单详情
remark备注string备注

请求示例

json
{
  "data": "{\"amount\":0.1,\"notifyurl\":\"https://tpaas.hbsk.com/test/faked\",\"remark\":\"for testing \",\"sequence\":\"2023050906\",\"terminal\":\"T544357446576893\"}",
  "key": "d4247ed86e99865b93a",
  "sign": "02bc57e1005f18766c4a4fee21cf15d19795b2cde24fe4e19bfb19fe15ed54e6",
  "time": 1683794943
}

返回数据

公共数据

数据名称类型必填说明
code状态码int结果状态码
text操作结果string操作结果,为空时不返回此字段
time时间戳int服务器当前 unix 时间戳,精确到秒
sign数据签名string数据签名
data业务数据JSON string业务数据,详见下例表格

业务数据

数据名称类型必填说明
amount金额string下单金额,精确到 2 位小数,如 1.00
remark备注string备注
payment支付数据JSON支付数据,用于前端发起支付
sequence流水号string下游游水号
serial流水号string上游流水号
terminal终端码string终端码,详见控台终端管理

payment

数据名称类型必填说明
appid小程序 appidstring小程序 appid
path小程序 PATHstring支付链接
url小程序跳转链接string微信小程序跳转链接,如:weixin://dl/business/?t=Jm9oFXE9XIo;或者支付宝小程序跳转链接
pre_order_id预下单订单号string预下单订单号

返回状态

状态说明
0下单成功
1201001下单失败
1201002交易流水号不可重复
1001001系统错误
1001002无效开发者标识
1001003无效签名信息
1001004无效请求时间戳
1001005暂不支持此交易方式
1001051无效支付订单
1002052无效应用终端
1002053无效支付商户
1002054无效支付服务商
1002055无效支付通道
1002056无效支付通道配置
1002057无效支付方式

返回示例

json
{
  "code": 0,
  "data": "{\"amount\":0.1,\"code\":\"2307119993453\",\"feeamount\":0,\"gateway\":\"weixin\",\"method\":\"app\",\"payment\":{\"appid\":\"gh_1ad0a7231d39\",\"path\":\"pages/cashier/cashier\",\"url\":\"weixin://dl/business/?t=Jm9oFXE9XIo\"},\"remark\":null,\"scene\":\"offline\",\"sequence\":\"202306210009238909812375\",\"share\":true}",
  "sign": "1b42a9227775e169fdd55e0d26e2f7a5b48ef46f78688c437d8e5e206d156232",
  "text": "下单成功",
  "time": 1689083411
}

微信小程序接入方式

app 接入微信小程序支付有两种方式。

第一种是使用接口返回的 scheme_code 进行跳转到微信小程序中发起支付,但是这种方式支付结果页无返回按钮,无法小程序内直接返回 app。

第二种是使用微信提供的 SDK,通过原生 SDK 跳转的方式到微信小程序中发起支付,这种方式结果页会有返回按钮,点击返回按钮可以返回原 app,同时也会携带支付结果参数以供参考。但是需要微信开放平台认证并获取对应的 appid 微信开放平台 https://open.weixin.qq.com

url 跳转方式接入(scheme)

预下单接口获取 url (weixin://xxxx)

iOS
// iOS
[[UIApplication sharedApplication]openURL:[NSURL URLWithString: scheme_code]];
Android
// Android
Intent intent = new Intent("android.intent.action.VIEW");
intent.setData(Uri.parse(scheme_code));
activity.startActivity(intent);

原生 SDK 跳转方式 iOS 微信 SDK(https://developers.weixin.qq.com/doc/oplatform/Downloads/iOS_Resource.html) 并参考 微信官方说明(https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html) 接入 SDK

Android 微信 SDK(https://developers.weixin.qq.com/doc/oplatform/Downloads/Android_Resource.html) 并参考 微信官方说明(https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html) 接入 SDK

注:下单接口返回的参数 path 是没有拼接相关参数的,需要开发者将预下单 id 拼接上

参数名
p预下单订单号
s固定值为 app
javascrept
// xxx 替换成接口返回的 pre_order_id s=app 写死即可
path = "pages/cashier/cashier?p=xxx&s=app";

小程序返回参数说明

当小程序内出现返回按钮时,点击返回按钮即可携带参数返回 app 供开发者参考。但最终支付结果请以服务端查询结果为准。

数据名称说明
trans_amt支付金额订单支付金额,精确到 2 位小数,如 1.00
req_seq_id请求流水号请求流水号
source来源是否是 app 打开小程序,目前值固定 app 。如果微信小程序通过 schema 形式打开该参数无效
errcode响应码微信无响应码
errmsg响应信息微信小程序返回非空,为错误原因