sign
、sign_type
两个参数外,其他需要使用到的参数皆是要签名的参数。(个别接口中参数sign_type
也需要参与签名。)sign
、sign_type
两个参数外,凡是通知返回回来的参数皆是要签名的参数。对于如下的参数数组:
string[] parameters={
"service=create_direct_pay_by_user",
"partner=2088101568338364",
"_input_charset=gbk",
"return_url= http://www.test.com/alipay/return_url.asp",
"out_trade_no=6741334835157966",
"subject=贝尔金护腕式",
"payment_type=1 ",
"[email protected]",
"total_fee=100"
};
对数组里的每一个值从a到z的顺序排序,若遇到相同首字母,则看第二个字母,以此类推。 排序完成之后,再把所有数组值以“&”字符连接起来,如:
_input_charset=gbk&out_trade_no=6741334835157966&partner=2088101568338364&payment_type=1&return_url=http://www.test.com/alipay/return_url.asp&[email protected]&service=create_direct_pay_by_user&subject=贝尔金护腕式&total_fee=100
这串字符串便是待签名字符串。
注意:
_input_charset
保持一致;_input_charset
参数,这个参数也应该包含在待签名数据中;在MD5签名时,需要私钥参与签名。MD5的私钥是以英文字母和数字组成的32位字符串。商户可登录到商户服务中心,安装数字证书,在“技术服务”栏目中点击“交易安全校验码”,即可查看。
sign
)。在DSA或RSA的签名时,需要私钥和公钥一起参与签名。私钥与公钥皆是客户通过OPENSSL来生成得出的。客户把生成出的公钥与支付宝技术人员配置好的支付宝公钥做交换。因此,在签名时,客户要用到的是客户的私钥及支付宝的公钥。