开放平台下载的sdk已封装签名验签方法,开发者只需要调用sdk配置业务入参即可,用sdk封装的方法发送请
求到开放平台时,sdk会自动签名。如开发者不用sdk,可根据签名规则自己拼写签名方法。以下是结合开放平
台业务对自主签名进行简单说明:
获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除sign字段。
将筛选的参数按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字
符的键值ASCII码递增排序,以此类推。
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成
的字符串为待签名字符串。SDK中已封装签名方法,开发者可直接调用,详见SDK说明。如自己开发,则需将
待签名字符串和私钥放入SHA1RSA算法中得出签名(sign)的值。
现将拼接后的参数,按照编码类型处理为byte数组,使用各自语言对应的RSA签名函数利用商户私钥对待签名
字符串进行签名,并将签名后结果进行Base64编码。
开发者只对工行API平台返回的json中response_biz_content的值做验签。response_biz_content的Json值内
容,如为json则需要包含首尾的“{”和“}”两个尖括号,如为字符串则需包括前后引号,如为数组,则需包
含首位的“[”和“]”,作为验签整体。
1.MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALAWAcPiTMRU906PTdy0ozspX7XptZ
nkEw2C8R64RDB9BiRFXAj0cU4aTA1MyfmGIlceeVdgJf7OnmvpHnYxjQ7sGxMItPtodrGwA2y8j0AE
bHc5pNWU8Hn0zoY9smHS5e+KjSbWv+VNbdnrRFTpDeiJ3+s2E/cKI2CDRbo7cAarAgMBAAECgYABiA
933q4APyTvf/uTYdbRmuiEMoYr0nn/8hWayMt/CHdXNWs5gLbDkSL8MqDHFM2TqGYxxlpOPwnNsndb
W874QIEKmtH/SSHuVUJSPyDW4B6MazA+/e6Hy0TZg2VAYwkB1IwGJox+OyfWzmbqpQGgs3FvuH9q25
cDxkWntWbDcQJBAP2RDXlqx7UKsLfM17uu+ol9UvpdGoNEed+5cpScjFcsB0XzdVdCpp7JLlxR+UZN
wr9Wf1V6FbD2kDflqZRBuV8CQQCxxpq7CJUaLHfm2kjmVtaQwDDw1ZKRb/Dm+5MZ67bQbvbXFHCRKk
GI4qqNRlKwGhqIAUN8Ynp+9WhrEe0lnxo1AkEA0flSDR9tbPADUtDgPN0zPrN3CTgcAmOsAKXSylmw
pWciRrzKiI366DZ0m6KOJ7ew8z0viJrmZ3pmBsO537llRQJAZLrRxZRRV6lGrwmUMN+XaCFeGbgJ+l
phN5/oc9F5npShTLEKL1awF23HkZD9HUdNLS76HCp4miNXbQOVSbHi2QJAUw7KSaWENXbCl5c7M43E
So9paHHXHT+/5bmzebq2eoBofn+IFsyJB8Lz5L7WciDK7WvrGC2JEbqwpFhWwCOl/w==
签名与验签
请求参数签名
筛选
排序
拼接
调用签名函数
返回参数验证签名
签名验签示例
应用私钥示例(非生产密钥)
开放平台公钥示例(非生产密钥)
评论0