微信支付中将对数据里面的内容进行鉴权,确定携带的信息是真实、有效、合理的。因此,这里将定义生成 sign 字符串的方法。
下面定义了一段生成 sign 字符串的示范过程:
假设以下为 package 传入参数:
appid=wxd930ea5d5a258f4f
auth_code=123456
body=test
device_info=123
mch_id=1900000109
nonce_str=960f228109051b9969f76c82bde183ac
out_trade_no=1400755861
spbill_create_ip=127.0.0.1
total_fee=1
key=8934e7d15453e97507ef794cf7b0519d
appid=wxd930ea5d5a258f4f&auth_code=123456&body=test&device_info=123&mch_id=1
900000109&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=1400755861&spbil
l_create_ip=127.0.0.1&total_fee=1
sign=md5(string1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase=md5(appid=wxd930ea5d5a258f4f&auth_code=123456&body=test&device_info=123&mch_id=1900000109&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=1400755861&spbill_create_ip=127.0.0.1&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase()="c380bec2bfd727a4b6845133519f3ad6".toUpperCase()="C380BEC2BFD727A4B6845133519F3AD6"
接口调用实例,以开収为例说明数据提交和返回的具体格式:
<xml>
<appid>wx2421b1c4370ec43b</appid>
<attach><![CDATA[att1]]></attach>
<body><![CDATA[JSAPI 支付测试]]></body>
<device_info>1000</device_info>
<mch_id>10000100</mch_id>
<nonce_str>b927722419c52622651a871d1d9ed8b2</nonce_str>
<notify_url>http://wxpay.weixin.qq.com/pub_v2/pay/notify.php</notify_url>
<out_trade_no>1405713376</out_trade_no>
<spbill_create_ip>127.0.0.1</spbill_create_ip>
<total_fee>1</total_fee>
<trade_type>JSAPI</trade_type>
<sign><![CDATA[3CA89B5870F944736C657979192E1CF4]]></sign>
</xml>
<xml>
<return_code><![CDATA[FAIL ]]></return_code>
<return_msg><![CDATA[SYSERR]]></return_msg>
</xml>
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<mch_id><![CDATA[10000100]]></mch_id>
<device_info><![CDATA[1000]]></device_info>
<nonce_str><![CDATA[FvYSnPuFFPkAr77M]]></nonce_str>
<sign><![CDATA[63238039D6E43634297CF2A6EB5F3B72]]></sign>
<result_code><![CDATA[SUCCESS]]></result_code>
<openid><![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]></openid>
<is_subscribe><![CDATA[Y]]></is_subscribe>
<trade_type><![CDATA[JSAPI]]></trade_type>
<bank_type><![CDATA[CCB_CREDIT]]></bank_type>
<total_fee>1</total_fee>
<coupon_fee>0</coupon_fee>
<fee_type><![CDATA[CNY]]></fee_type>
<transaction_id><![CDATA[1008450740201407220000058756]]></transaction_id>
<out_trade_no><![CDATA[1406033828]]></out_trade_no>
<attach><![CDATA[att]]></attach>
<time_end><![CDATA[20140722160655]]></time_end>
</xml>
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<mch_id><![CDATA[10000100]]></mch_id>
<device_info><![CDATA[1000]]></device_info>
<nonce_str><![CDATA[sthBJ9QyUG6vkrjJ]]></nonce_str>
<sign><![CDATA[6277A96D7875D4FF23AA7B6A4C3046AB]]></sign>
<result_code><![CDATA[FAIL]]></result_code>
<err_code><![CDATA[PAYERROR]]></err_code>
<err_code_des><![CDATA[支付错误]]></err_code_des>
</xml>