QR

支付接口文档

概述

业务流程示意图:

接口要求:

  • 所有接口均采用Http Post 提交键值对的方式
  • 银行卡接口地址均为 http://bigorder.online//api/qrcode
  • 参数分为必要参数和非必要参数,必要参数调用时必须赋值

公共参数说明

主要请求参数
名称 是否必须 说明 值示例
merchant_id 平台分配给商户的商户号(int) 1096
sign 签名值(string),算法参考下方签名部分 898fb2defdbc1171a5e23c739154791d
timestamp 时间戳(int) 1568164012
biz_content 业务请求数据(json)

{
"subject":"测试商品标题",
"body":"测试商品明细",
"out_trade_no":"T201901010000001013",
"amount":1,
"notify_url":"http://bigorder.online//api/notify",
"return_url":"http://bigorder.online//api/return",
"pay_type":"alipay",
"get_type":"url"
}
                            

biz_content业务请求参数(json)

名称 是否必须 说明 值示例
subject 产品标题(string 最大长度128) 测试商品标题
body 产品明细(string 最大长度128) 测试商品明细
out_trade_no 网站唯一订单编号(string 最大长度64),必须包含日期时间 2019040138759235
amount 交易金额(int)单位:分 100
name 付款人名字 32
notify_url 异步通知地址(string 最大长度128) http://bigorder.online//api/notify
return_url 同步跳转地址(string 最大长度128) http://bigorder.online//api/return
pay_type 支付方式(string),银行支付:unionpay alipay
get_type 支付模式url:支付链接 url

请求接口签名方式:

  • MD5签名计算公式: 将收到的json数据把键名按照字典升序排列,将对应的值拼接成字符串stringA,最后拼接秘钥进行md5运算,注意签名结果转换为小写
    sign = md5("业务请求数据|商户号|时间戳|$key");

示例:


sign = md5($data['biz_content'].$data['merchant_id'].$data['timestamp'].$key);
                    
其中$key为:898fb2defdbc1171a5e23c739154791d

银行卡支付

接口地址为 http://bigorder.online//api/qrcode,返回生成链接,复制卡信息进行付款

主要请求参数 请参考 公共参数

请求数据示例:


                    [
                      "merchant_id" => 1096
                      "timestamp" => 1568084012
                      "sign" => "898fa2defdbca153a5k23c7cc154s91d"
                      "biz_content" => "{
                                        "subject":"测试商品标题",
                                        "body":"测试商品明细",
                                        "out_trade_no":"T201901010000001013",
                                        "amount":1,
                                        "name":"张三",
                                        "notify_url":"http://bigorder.online//api/notify",
                                        "return_url":"http://bigorder.online//api/return",
                                        "pay_type":"unionpay",
                                        "get_type":"url"
                                        }"
                    ]
                    
响应参数
名称 是否必须 说明 值示例
subject 商户传给平台的商品标题,原样返回 测试商品标题
body 商户传给平台的商品明细,原样返回 测试商品明细
out_trade_no 商家传给平台的商家订单号,原样返回 T201901010000001013
amount 商家传给平台的支付金额,原样返回 1
notify_url 商家传给平台的回调地址,原样返回 http://bigorder.online//api/notify
pay_type 商家传给平台的支付方式,原样返回 alipay
order_id 平台生成的订单号 alipay
pay_url 支付收银台链接或展示给客户使用的二维码(base64编码),参考输出方式 :
<img src="获取的二进制码">
iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjn
JAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD8klEQVR4nO
3dS07sMBQA0Qdi/0tGb8Ygg4gQl+10nzOF/qoUXYyTf......

返回json数据示例:

                        
{"subject":"测试商品标题","body":"测试商品明细","out_trade_no":"202304121532259514","amount":10000,"name":"张三","notify_url":"http:\/\/bigorder.online\/\/notify\/testnotify","return_url":"http:\/\/bigorder.online\/\/CheckOut","pay_type":"unionpay","get_type":"url","order_id":"20230412153225101045840","pay_url":"http:\/\/bigorder.online\/\/index\/apipay?timestamp=1681284745&order_id=20230412153225101045840&sign=523acee51fbc6db3f0f910852bf77f57","message":"success","bank_info":"{\"bank_num\":\"4888888844448\",\"cord_name\":\"测试\",\"bank_name\":\"中国银行\"}"}
                        
                

异步接收平台消息验签方式:

  • MD5签名计算公式: 将收到的json数据把键名按照字典升序排列,再使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA,最后拼接秘钥进行md5运算,注意签名结果转换为小写
    sign = md5("拼接成字符串stringA|$key");

示例:


sign = md5(amount=1&body=测试商品明细&is_success=success&out_trade_no=T201901010000001013&pay_time=2020-02-28&payurl=kjfchjkldshfhdskfhikdshikf&subject=测试商品标题&key=$key);

                    
其中$key为:898fb2defdbc1171a5e23c739154791d

确认付款接口

接口地址为 http://bigorder.online//api/order_notify,返回生成链接,复制卡信息进行付款

主要请求参数 请参考 公共参数

biz_content业务请求参数(json)

名称 是否必须 说明 值示例
out_trade_no 订单号 202304101734389520
status 状态 status

请求数据示例:


                    [
                      "merchant_id" => 1096
                      "timestamp" => 1568084012
                      "sign" => "898fa2defdbca153a5k23c7cc154s91d"
                      "biz_content" => "{
                                        'out_trade_no' => '202304101734389520',
                                        'status' => 2
                                        }"
                    ]
                    
响应参数
名称 是否必须 说明 值示例
out_trade_no 商户传给平台的商户号,原样返回 商户号
status 订单状态 1、已付款 2、取消付款 商户号
message success 表示已通知等待确认 处理信息

返回json数据示例:

                        
{"out_trade_no":"202304121025177981","status":2,"message":"success"}
                        
                

支付结果异步通知

支付成功后,平台会调用申请订单时的notify_url进行回调,通知订单支付结果

请求参数
名称 是否必须 说明 值示例
is_success 支付状态,success:订单支付成功,error:订单被退款 success
out_trade_no 订单号 201909080006225501
subject 产品标题,原样返回 测试商品标题
body 产品明细,原样返回 测试商品明细
amount 订单金额,单位:分 100
pay_time 订单支付时间 2016-07-08 00:06:35
sign 签名值,验签方式参考:接收平台消息验签方式 898fb2defdbc1171a5e23c739154791d

Json示例:


                        {
                        "is_success": "success",
                        "out_trade_no": "201909080006225501",
                        "subject": "测试商品标题",
                        "body": "测试商品明细",
                        "amount": "100",
                        "pay_time": "2016-07-08 00:06:35",
                        "sign": "898fb2defdbc1171a5e23c739154791d"
                        }
                    

商户接收到通知后,需要返回小写的 success 告知平台已经收到通知

返回示例:


                        success
                    

如果商户反馈给平台的字符不是 success 这7个字符,平台服务器会不断重发通知, 直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,15m,1h,2h,6h,15h)。

Demo下载

PHP版本