云享平台官方SDK包含了请求的封装,签名加密,响应解释,性能优化等等功能,使用SDK可以轻松
快速完成API的调用和结果处理。 (点击下载SDK)
如您是使用非java语言接入,可以按照下方签名规则和参数进行对接。
http://open.faqianbei.com/sop/gateway
第一步,筛选并排序
获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除sign字段,剔除值为空的参数,并按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
第二步,拼接参数
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。
第三步,调用签名函数
使用各自语言对应的SHA256WithRSA(对应sign_type为RSA2)签名函数利用商户私钥对待签字符串进行签名,并进行Base64编码。
第四步,签名赋值
把生成的签名赋值给sign参数,拼接到请求参数中(参照SDK中的util方法)。
参数名 | 类型 | 最大长度 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|---|
app_id | String | 32 | 是 | 平台对商户的唯一编号 | 10023456780 |
method | String | 128 | 是 | 接口名称 | settle.remit.api.payment |
sign_type | String | 10 | 是 | 商户生成签名算法类型 | RSA2 |
sign | String | 256 | 是 | 商户请求签名值 | 详见签名规则 |
timestamp | String | 19 | 是 | 请求时间 | 2014-07-24 03:07:50 |
version | String | 3 | 是 | 接口版本号 | 1.0 |
merchant_request_no | String | 64 | 是 | 请求唯一标识 | 商户自定义 |
biz_content | String | - | 是 | 请求业务参数 | 详见各接口 |
/**
* 请求方式 https post
* */
//请求内容
app_id="101909021118";
merchant_request_no="test111111";
method="settle.remit.api.payment";
timestamp="2021-07-19 16:20:20";
biz_content={
"batchAmt": 0.02,"batchNum":1,
"custBatchNo":"eb5d11f964924ee2af55124843d94fd4",
"remitDetailList":[
{"custOrderNo":"640465cc45324d408c57de61ee9f8dad",
"orderAmt":0.02,"recvBankName":"北京银行","recvCardNo":"6214686001166870","recvCustName":"张三",
"recvIdNo":"1305******4100916","recvIdType":"IDENTITY","recvMobile":"13****5639"}],
"serverCallbackUrl":"http://xxx/xxxx/callBack"
};
sign=`X9/sCEpqjaw1u3NqCIMCinzsJ7QoYo5UrabHHsy11KcTt333+urq9Z0V3FJLjq22G6zuRCuWf0myK8eSK3d1s0zpIBj
A5iryK/kJcdTG5bmp3WFR5lXv2J+GhC8s7LMuaTFPj3KMGAmy1jdbNfMhomRE4ux+0qj3LrLs3acNcLJ63bFTq6xj/xgCh+lU3
EQzChrxvdIpEU3PKeE99/kjwwb8FIJGmN8N7IJ21UglEdHLF+rL0vVwx5uEOXyDJJcd7+D8zX8IMft2e91DVkiiGTcahdsnysI
yUrmsy2IgMe77lc5tH3rTQgbCK/TVWXUtrOHAZUyIYp18AxWW8Y40fg==`;
sign_type="RSA2";
version="1.0"
//待签名字符串为:
app_id=101909021118&biz_content={"batchAmt":0.02,"batchNum":1,"custBatchNo":"eb5d11f964924ee2af55124843d94fd4","recvType":"BANK","remitDetailList":[{"custOrderNo":"640465cc45324d408c57de61ee9f8dad","orderAmt":0.02,"recvBankName":"北京银行","recvCardNo":"6214686001166870","recvCustName":"张三","recvIdNo":"1305******4100916","recvIdType":"IDENTITY","recvMobile":“13****5639”,"remark":"test"}],"serverCallbackUrl":"http://xxx/xxxx/callBack"}&merchant_request_no=test111111&method=settle.remit.api.payment&sign_type=RSA2×tamp=2021-07-19
16:20:20&version=1.0
参数名 | 类型 | 最大长度 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|---|
app_id | String | 是 | 32 | 平台商户唯一编号 | 100123454563 |
merchant_request_no | String | 是 | 64 | 请求唯一标识 | 同请求 |
timestamp | String | 是 | 19 | 请求时间 | 同请求 |
code | String | 是 | 16 | 云享平台外部返回码 | 详见公共返回码 |
msg | String | 是 | 16 | 云享平台外部返回错误信息描述 | 详见公共返回码 |
subCode | String | 是 | 32 | 明细返回码 | 详见公共错误码 |
sub_Msg | String | 是 | 64 | 明细返回码描述 | 详见公共错误码 |
response | String | 是 | - | 平台返回json格式业务参数 | 见样例 |
错误码(code) | 错误描述(msg) | 明细返回码(sub_code) | 明细返回码描述(sub_msg) |
---|---|---|---|
10000 | 成功 | ||
20000 | 服务暂不可用 | SP_ERROR | 服务暂不可用(业务系统不可用) |
20001 | 接口权限不足 | INTERFACE_NOT_POWER | 商户未授权当前接口 |
40001 | 缺少必要参数 | MISSING_METHOD | 缺少方法名参数 |
MISSING_SIGNATURE | 缺少签名参数 | ||
MISSING_APPID | 缺少app_id参数 | ||
MISSING_TIMESTAMP | 缺少时间戳参数 | ||
MISSING_VERSION | 缺少版本参数 | ||
40002 | 非法参数 | INVALID_SIGNATURE | 无效的签名 |
INVALID-APP-ID | 无效的app_id | ||
INVALID-TIMESTAMP | 无效的时间戳参数 |