# 扫码支付

# (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,....}