一、API接口说明

  • 支付平台API采用http协议。

  • 支付平台API仅支持JSON格式的请求调用,所有参数组装成JSON字符串,其中JSON的key严格遵循请求参数名称,将组装好的JSON放入http body域中用POST方式发送到请求地址。

  • 请务必在HTTP请求头Header中加入“Content-Type=application/json;charset=UTF-8”。

  • 所有请求的body都需采用UTF-8编码,所有响应也会采用相同编码。

二、公共参数:

1、请求公共参数

备注:O-非必传 M-必传 C-条件必填
银行卡支付:消费API,消费撤销API,退货API接口无需包含公共参数。具体详情请参考对应API
参数 参数名称 类型 参数说明 样例 可空
accessid 接入机构标识 String 接入SaaS平台的机构标识 M
sign 参数签名值(16进制串) String 除sign参数以外的其它参数,用接入机构的accesskey进行MD5签名。 AF23847BF987234 M

2、返回公共参数

备注:O-非必返 M-必返
参数 参数名称 类型 参数说明 样例 可空
return_code 错误码 int 正常:10000;其他为异常 30002 M
return_msg 错误信息 String 签名校验失败 O
sign 参数签名值(16进制串) String 除sign参数以外的其它参数,用接入机构的accesskey进行MD5签名。 AF23847BF987234 M

三、sign签名值说明

sign签名值用于SAAS平台的机构对接接口,第三方应用平台向SAAS平台(或SAAS平台向第三方应用平台)发起请求,均需要对参数进行签名。请求参数及返回参数,均采用相同机制进行签名。SAAS平台的接口可能增加字段,验证签名时必须支持增加的扩展字段

  1. 首先,排除sign参数之外,将其它参数(空值除外)按名称进行字母排序,并和它的取值一起组成name=value样式的字符串,然后用&把它们拼装为一个大字符串,对于嵌套的参数,嵌套的参数列表也需按照字母排序进行拼装。
    a) 比如,要传递下列参数
      i.version=1.0.0
      ii.return_code=0
      iii.拼装之后的字符串为:return_code=0&version=1.0.0
    b) 比如,要传递下列参数
      i.a=1
      ii.b={“d”:”3”,”c”:”2”}
      iii.拼装之后的字符串为:a=1&b=c=2&d=3
    c)比如,要传递下列参数
      i.a=1
      ii.b=[{“d”:”3”,”c”:”2”},{“d”:”5”,”c”:”4”}]
      iii.拼装之后的字符串为:a=1&b=c=2&d=3&c=4&d=5
    d)比如,要传递下列参数
      i.a=1
      ii.b=[“2”,”3”]
      iii.拼装之后的字符串为:a=1&b=2&3
    e)比如,要传递下列参数
      i.a=1
      ii.b=[[{“d1”:”1”,”c1”:”2”},{“d2”:”3”,”c2”:”4”}],[{“d3”:”5”,”c3”:”6”},{“d4”:”7”,”c4”:”8”}]]
      iii.拼装之后的字符串为:a=1&b=c1=2&d1=1&c2=4&d2=3&c3=6&d3=5&c4=8&d4=7
  2. 在上述拼装之后的字符串后面直接拼装accesskey的值。
     a)比如,上述参数return_code=0&version=1.0.0,假设accesskey是123456789ABCDEF,拼装以后,成为下述字符串:
     b)return_code=0&version=1.0.0123456789ABCDEF
  3. 对上述第2步得到的字符串,进行MD5运算(32位大写),得到sign

排序工具类见附件,如果直接使用此工具类,请勿使用自定义对象构造请求数据用作签名,请使用net.sf.json包下相关对象。

报文字符串排序在线测试

四、测试环境接入信息:

  • 服务商编号agent_no:11010200097

  • 商户编号merch_no:88888888

  • accessid:cpostest

  • accesskey:48e70b51cab84019a2dddf2f03f13a38

  • 传输密钥:F36116F51B262562B0F0D537A2463485

文档更新时间: 2024-03-25 15:43   作者:admin