商户系统先调用该接口通过企微后台生成预支付交易单,返回正确的预支付交易会话标识后再按小程序场景生成交易串调起支付。
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/miniapppay/create_order?access_token=ACCESS_TOKEN
请求包体:
{
"appid": "xx",
"mchid": "xx",
"out_trade_no": "xxxx",
"description": "xxxxx",
"scenekey": "xxxx",
"amount": {
"total": 100,
"currency": "CNY"
},
"payer": {
"openid": "xxx"
},
"time_expire": "2015-05-20T13:29:35+08:00",
"attach": "xxxxx",
"goods_tag": "xxxxxxx",
"scene_info": {
"payer_client_ip": "127.0.0.1",
"device_id": "xxxxxxx",
"store_info": {
"id": "xxxx",
"name": "xxxx",
"area_code": "xxxx",
"address": "xxxxx"
}
},
"detail": {
"cost_price": 123,
"invoice_id": "asdfasdfasdf",
"goods_detail": [{
"merchant_goods_id": "xxxx",
"wechatpay_goods_id": "xxxx",
"goods_name": "iPhoneX 256G",
"quantity": 1,
"unit_price": 828800
}]
}
}
参数说明:
参数名 | 变量 | 类型[长度限制] | 必填 | 说明 |
---|---|---|---|---|
应用ID | appid | string[1,32] | 是 | 二级商户申请的公众号或移动应用appid。 |
商户号 | mchid | string[1,32] | 是 | 二级商户号,由企业微信生成并下发。 |
商户订单号 | out_trade_no | string[6,32] | 是 | 商户系统内部订单号,只能是数字、大小写字母、_-|* 且在同一个商户号下唯一。 |
商品描述 | description | string[1,127] | 是 | 商品描述 |
下单场景key | scenekey | string[1,256] | 否 | 用来统计企微成员发出小程序的交易业绩,可从小程序URL获取。统计结果将在对外收款-成员业绩中展示。若不传入该项,则不做统计。 |
订单总金额 | amount.total | int | 是 | 订单总金额,单位为分。 |
货币类型 | amount.currency | string[1,16] | 是 | CNY:人民币,境内商户号仅支持人民币。 |
支付者标识 | payer.openid | string[1,128] | 是 | 用户在子商户appid下的唯一标识。 |
交易结束时间 | time_expire | string[1,64] | 否 | 订单失效时间,遵循rfc3339标准,格式为 yyyy-MM-DDTHH:mm:ss+TIMEZONE |
附加数据 | attach | string[1,128] | 否 | 附加数据,在查单和支付通知中原样返回 |
订单优惠标记 | goods_tag | string[1,32] | 否 | 订单优惠标记 |
订单原价 | detail.cost_price | int | 否 | 1、商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。 2、当订单原价与支付金额不相等,则不享受优惠。 3、该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。 |
商品小票ID | detail.invoice_id | string[1,32] | 否 | 商家小票ID |
商户侧商品编码 | detail.goods_detail.merchant_goods_id | string[1,32] | 是 | 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。 |
微信支付商品编码 | detail.goods_detail.wechatpay_goods_id | string[1,32] | 否 | 微信支付定义的统一商品编号(没有可不传) |
商品名称 | detail.goods_detail.goods_name | string[1,256] | 否 | 商品的实际名称 |
商品数量 | detail.goods_detail.quantity | int | 是 | 用户购买的数量 |
商品单价 | detail.goods_detail.unit_price | int | 是 | 商品单价,单位为分 |
用户终端IP | scene_info.payer_client_ip | string[1,45] | 是 | 用户的客户端IP,支持IPv4和IPv6两种格式的IP地址。 |
商户端设备号 | scene_info.device_id | string[1,32] | 否 | 商户端设备号(门店号或收银设备ID)。 |
门店编号 | scene_info.store_info.id | string[1,32] | 是 | 商户侧门店编号 |
门店名称 | scene_info.store_info.name | string[1,256] | 否 | 商户侧门店名称 |
地区编码 | scene_info.store_info.area_code | string[1,32] | 否 | 地区编码,详细请见省市区编号对照表。 |
详细地址 | scene_info.store_info.address | string[1,512] | 否 | 详细的商户门店地址 |
返回结果:
{
"prepay_id": "xxxxxx",
"errcode": 0,
"errmsg": "ok"
}
参数说明
参数名 | 变量 | 类型[长度限制] | 说明 |
---|---|---|---|
预支付交易会话标识 | prepay_id | string[1,64] | 预支付交易会话标识。用于后续接口调用中使用,该值有效期为2小时 |