支付系统

公共签名规则
  1. 所有请求参数去除空值后按照ASCII 码的升序进行排序,按照key1=value1&key2=value2进行组合,最后加上商户秘钥(&paySecret=商户秘钥),进行md5运算,结果转为大写
  2. function($data, $signkey){
  3. $data = array_filter($data); //去空
  4. ksort($data); //排序
  5. $tmp_string = http_build_query($data); //进行键值对排列 a=1&b=2&c=3
  6. $tmp_string = urldecode($tmp_string); //参数无需进行urlencode ,上一步进行了urlencode,这里还原一下
  7. return strtoupper(md5( $tmp_string .'&paySecret='. $signkey )); //签名大写生成
  8. }
下单接口:网关域名/gateway/scan
  1. --------------------------------------------------------------------------------------------------------------
  2. <h3>必填参数</h3>
  3. payKey 商户key:商户后台查看
  4. orderNo 商户订单号:订单长度10-50位;可传字母或数字;应确保订单号唯一性
  5. orderPrice 订单金额:单位元,可为整数,
  6. payWayCode 通道编号:商户后台查看
  7. notifyUrl 异步通知地址:订单成功后会通知此地址
  8. orderPeriod 产品过时时间默认为 1
  9. osType 支付设备系统类型不能为空, 默认值:1
  10. productName 产品名称
  11. returnUrl 回调地址
  12. --------------------------------------------------------------------------------------------------------------
  13. sign 签名:见公共签名规则
  14. <h3>下单响应</h3>
  15. statusCode 01:下单失败; 00:下单成功
  16. msg 中文描述 如:下单成功!
  17. data json Object => {payUrl:'http://www.baidu.com'}
  18. 示例:{factPrice=200.00, orderNo=P212115017828237735042, orderPrice=200.00, orderTime=2024061121:21:56, payKey=kkkkcpjafDFEWf2fcv92i070, sign=0CFD2BSWDFSFEEEE3A24961F3F7D1E150, statusCode=00, tradeStatus=success, trxNo=6666cpk4uit9f4etvuj99pa0}
查单接口:网关域名/api/queryOrder
  1. <h3>必填参数</h3>
  2. merchantKey 商户号:商户后台查看
  3. merchantOrderId 商户订单号:订单长度10-50位;可传字母或数字;应确保订单号唯一性
  4. sign 签名:见公共签名规则
  5. ------------------------------------------------------------------------------------------------------------
  6. <h3>查询接口响应示例</h3>
  7. { "Data": { "merchantId": "查询成功", "merchantOrderId": "E20240808153448212065", "msg": "已支付", "orderId": "E20240808153448212065", "settStatus": "02", "sign": "0B0F3242B5A2A139CEB7DAA7412A672F", "status": "paid", "wail": "查询成功" }, "statusCode": "00", "msg": "请求成功" }
  8. code 500 查询异常; 200:查询成功 此处的只代表查询操作成功,不代表订单成功
  9. msg 中文描述 如:查询成功
  10. data { merchantOrderId:商户号 orderId:商户订单号 status:订单状态码paid支付成功 wail支付失败 msg:订单状态描述 sign:签名 }
  11. <b>注意:请一定知晓,data字段内的状态码才是订单的支付状态!</b>
  12. data->status 字段值为 paid时 才表示订单已支付 未支付状态值是 wail
异步通知:POST表单
  1. 订单完成支付后,下单接口里面的异步通知地址会收到服务器点对点通知。
  2. 请求方式 post application/x-www-urlencoded
  3. <b>通知参数</b>
  4. trxNo 商户号
  5. orderNo 商户订单号
  6. orderPrice 订单金额
  7. tradeStatus 订单状态 订单已支付才会回调,此参数值固定为 success
  8. sign 回调签名
  9. 注意:收到我方回调通知后,请返回小写或大写符串 SUCCESS或success 否则我方将按一定频率重复通知若干次
  10. 回调案例:{"factPrice":"100.00","orderNo":"E20240729141234321294","orderPrice":"100.00","orderTime":"2024072914:13:14","payKey":"kkkkcqj1ss2aq","sign":"0408C6E5F7B1F7CAC306","statusCode":"00","tradeStatus":"success","trxNo":"6666cqjj5kpociaomfn8ii90"}
代付接口:网关域名/gateway/payfor
  1. --------------------------------------------------------------------------------------------------------------
  2. <h3>必填参数</h3>
  3. merchantKey 商户key:商户后台查看
  4. merchantOrderId 商户订单号:订单长度10-50位;可传字母或数字;应确保订单号唯一性
  5. amount 订单金额:单位元,可为整数,
  6. bankName 银行名称:中国银行
  7. notifyUrl 异步通知地址:订单成功后会通知此地址
  8. realname 开户姓名1
  9. cardNo 开户卡号,填写支付宝账户/卡户
  10. accType 对公默认0
  11. --------------------------------------------------------------------------------------------------------------
  12. sign 签名:见公共签名规则
  13. <h3>下单响应</h3>
  14. statusCode 01:下单失败; 00:下单成功
  15. msg 中文描述 如:下单成功!
  16. 示例:{ "resultCode": "00", "resultMsg": "银行处理中", "settAmount": "10" }
代付接口:get 回调通知
  1. --------------------------------------------------------------------------------------------------------------
  2. <h3>必填参数</h3>
  3. merchantKey 商户key:商户后台查看
  4. mchOrderNo 商户订单号:订单长度10-50位;可传字母或数字;应确保订单号唯一性
  5. amount 订单金额:单位元,可为整数,
  6. busOrderNo 系统订单号
  7. reqTime 回调时间
  8. status 代付状态 fails代付失败 success代付成功
  9. --------------------------------------------------------------------------------------------------------------
  10. sign 签名:见公共签名规则
  11. 示例:{"amount":"1000","busOrderNo":"4444cqpm812lr8819r3i5bqg","mchOrderNo":"E20240807200940788292","reqTime":"1723042136367","sign":"F6124AE9557083E2182618FAB6B15800","merchantKey":"kkkkcq0h392lr884fb5kmhkg","status":"fails"}