扫码支付
(1)支付回调接口
业务方调用微信扣费接口之后,接收扣费结果通知。
1、 请求参数
参数名称 | 类型 | 必选 | 备注 |
---|---|---|---|
appid | string | Y | 小程序 |
appidmch_id | string | Y | 支付商户号 |
nonce_str | string | Y | 随机字符串 |
encrypted_data | string | Y | 使用AESCBCPKCS7PADDING |
iv | string | Y | 用于解密的IV |
sign | string | Y | 1~5字段的签名 |
解密后的参数如下:
参数名称 | 类型 | 必选 | 备注 |
---|---|---|---|
openid | string | Y | 用户在小程序appid下的openid |
bank_type | string | Y | 支付类型 |
total_fee | int | Y | 支付总额,单位为分 |
trade_state | string | Y | 支付状态:SUCCESS/FAIL |
trade_msg | string | N | 支付失败时返回 |
transaction_id | string | Y | 微信支付单号 |
out_trade_no | string | Y | 乘车码业务方单号 |
attach | string | N | 扣费API的入参,原样带回 |
time_end | string | Y | 支付完成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010 |
qrcode | string | Y | 二维码 |
2、 返回参数
参数名称 | 类型 | 必选 | 备注 |
---|---|---|---|
errcode | int | Y | 0为成功 |
errmsg | string | N | 错误信息 |
nonce_str | string | Y | 原样带回 |
3、 示例代码
{"appid":"test","mch_id":"123456","nonce_str":"abcdefg","encrypted_data":"jfiwajeofjiefef","iv":"afweifwefe"}
解密后数据:
{"openid":"fafwefawef","bank_type":"CFT","total_fee":100,"trade_state":"SUCCESS",...}
(2)微信扣费接口(微信API接口)
用于接收业务方依据扫码接口获取到的信息对用户进行免密扣费。
1、请求参数
参数名称 | 类型 | 必选 | 备注 |
---|---|---|---|
qrcode | string | Y | 乘车码数据,需要base64 |
total_fee | int | Y | 支付总额,分为单位(优惠后) |
original_fee | int | Y | 支付总额,分为单位(优惠前) |
machine_ip | string | N | 扫码机接入IP |
machine_latitude | float | N | 扫码机GPS纬度 |
machine_longitude | float | N | 扫码机GPS经度 |
body | string | Y | 公交代扣/地铁代扣 |
start_time | string | Y | 上车/乘车时间,如20091225091010 |
end_time | string | N | 下车时间,格式同上,适用于二次刷码的场景 |
line_name | string | Y | 乘车线路 |
trade_scene | string | Y | METRO/BUS |
start_qrcode | string | N | 二次刷码时,传入首次刷码使用的二维码 |
out_order_no | string | N | 业务方自定义订单号,需要保证唯一 |
attach | string | N | 业务方自定义数据,对账单和查询接口会原样返回 |
2、 返回参数
参数名称 | 类型 | 必选 | 备注 |
---|---|---|---|
errcode | int | 32Y | 返回码 |
errmsg | string | N | 返回信息 |
3、 示例代码
入参:
{"qrcode":"afefawefwef",....}
返回
{"errcode":0,....}