付款码支付接口
接口名称
openapi.payment.order.swipe
请求方式
POST
请求头
application/json; charset=utf-8
请求业务参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
merchant_order_sn | string | 是 | 32 | 第三方商户订单号,确保唯一,前后不允许带空格 |
type | int | 否 | 1 | 支付方式[微信1/支付宝2/银联5] |
auth_code | string | 是 | 18 | 用户支付授权码 刷脸场景对应获取到的ftoken(支付宝) |
total_fee | float | 是 | 10 | 订单金额(元),精确到2位小数 |
store_id | int | 否 | 10 | 门店ID,当存在多个门店时,此字段必填 |
cashier_id | int | 否 | 10 | 收银员ID |
device_no | string | 否 | 18 | 设备终端号 |
body | string | 否 | 128 | 对交易或商品的描述(微信上body值显示在商品,支付宝上body值显示在商品说明) |
call_back_url | string | 否 | 256 | 支付成功后回调链接 |
equipment_type | int | 否 | 3 | 硬件类型(90-127) ,非约定情况下该参数不需要传 |
discount_switch | int | 否 | 1 | 是否享受商家折扣【 1 享受 0不享受】 |
attach | string | 否 | 127 | 附加字段 |
goods_tag | string | 否 | 不定 | 订单优惠标记,代金券或立减优惠功能的参数【若为单品券则必填】 |
detail | string | 否 | 6000 | 商品详细描述,Json格式,对于使用单品优惠的商户,该字段必须按照规范上传,详见“单品优惠参数说明” |
sub_appid | string | 否 | 不定 | 公众号appid |
timeout_express | string | 否 | 14 | 订单失效时间 格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。 建议:最短失效时间间隔大于1分钟 大于当前下单时间 |
scene | string | 否 | 32 | 刷脸场景 必填 固定值 FACE_PAY |
buyer_id | string | 否 | 32 | 买家的用户id 刷脸场景 支付宝对应buyer_id 微信对应open_id (注:微信暂未开通) |
以下为单品优惠活动detail字段列表说明:
变量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
cost_price | int | 否 | 1.商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。 |
receipt_id | String(32) | 否 | 商家小票ID |
goods_detail | String | 是 | 单品信息,使用Json数组格式提交,见下文说明 |
以下为单品优惠活动goods_detail字段说明:
变量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
goods_id | String(32) | 是 | 商品编码 |
goods_name | String(256) | 是 | 商品名称 |
quantity | int | 是 | 商品数量 |
price | Integer | 是 | 商品单价,单位为分 |
- 请求示例:
{
"app_id": "20161219113441561987",
"method": "openapi.payment.order.swipe",
"format": "json",
"sign_method": "md5",
"sign": "5F0EA68A1278C0F7A524073D2B498C43",
"nonce": "pp2kiwi",
"version": "1.0",
"biz_content": "{\"attach\":\"\订\单:123456\",\"store_id\":25249,\"cashier_id\":151156,\"merchant_order_sn\":\"201704191492587335309\",\"total_fee\":100,\"type\":1,\"auth_code\":\"130784921069830971\",\"discount_switch\":\"1\"}"
}
成功响应参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
merchant_order_sn | string | 是 | 32 | 第三方商户的订单号 |
order_sn | string | 是 | 20 | 付呗订单号 |
trade_no | string | 是 | 32 | 商户单号 |
trade_state | string | 否 | 20 | 交易状态, USERPAYING :用户支付中; SUCCESS:交易成功 |
total_fee | float | 是 | 10 | 实收金额(元) |
net_money | float | 否 | 10 | 净收金额(元) = 实收金额 - 手续费 交易成功状态下返回 |
order_price | float | 是 | 10 | 订单金额 |
pay_time | int | 是 | 10 | 支付时间(秒) |
type | int | 否 | 1 | 1:微信付款码 2:支付宝付款码 5:银联 |
discount_money | float | 否 | 10 | 折扣减掉的金额【trade_state等于 SUCCESS 才有返回】 |
buyer_pay_amount | float | 否 | 10 | 买家实际支付的金额【trade_state等于 SUCCESS 才有返回】 |
attach | string | 否 | 127 | 附加数据 |
store_id | int | 是 | 10 | 付呗系统的门店id |
cashier_id | int | 否 | 16 | 付呗系统的收银员id |
device_no | string | 否 | 32 | 设备终端号 |
body | string | 否 | 128 | 对交易或商品的描述(微信上body值显示在商品,支付宝上body值显示在商品说明) |
user_id | string | 否 | 32 | 微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id” |
user_logon_id | string | 否 | 32 | 支付宝顾客的账号 |
cash_coupon_fee | float | 否 | 10 | 预充值代金券金额 |
no_cash_coupon_fee | float | 否 | 10 | 免充值代金券金额 |
fee | float | 否 | 10 | 交易手续费 精确到小数点后2位 单位(元) |
platform_order_no | string | 否 | 32 | 平台方订单号 |
[!TIP] trade_state 为 USERPAYING时, 需调用查询接口查询最终支付状态
- 响应示例:
{
"result_code": 200,
"data": {
"merchant_order_sn":"20160120105532871512",
"order_sn":"20160119233754227705",
"trade_no":"2018092616294901086756739438",
"trade_state":"SUCCESS"
"total_fee":80.00,
"pay_time":1478574762,
"type":1,
"discount_money":20.00,
"buyer_pay_amount":79.90,
"attach":"",
"store_id":123,
"cashier_id":0,
"user_id":"",
"device_no":"123456",
"body":"",
"user_logon_id":"",
"cash_coupon_fee":0.1,
"fee":0.04
},
"result_message": "成功"
}
失败响应参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
merchant_order_sn | string | 是 | 32 | 第三方商户的订单号 |
sub_code | string | 否 | 不定 | 平台方错误码 |
- 响应示例:
{
"result_code": 400,
"data": {
"merchant_order_sn":"20160120105532871512"
},
"result_message": "失败",
"sub_code":"ERROR_CODE"
}
提示:当同步返回信息不能判定订单是否支付成功(网络抖动、服务器超时、返回信息异常等),必须调用查询接口再次确认支付结果