【准备事项】
【服务器端注意事项】
我遇到的坑:
微信文档告诉我说“参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay”。
于是我就自己根据签名规范先字典排序,生成URL,拼接API密钥,最后签名转大写,于是签名出来后给APP用,但是调起微信APP死活返回-1错误。
URL如下:
appid=wxbb221fb2439af8dh&noncestr=cieqqgcixf3thk4gjjtk5x9tp7r0uww6&package=Sign=WXPay
&partnerid=1314759201&prepayid=wx20160226110745491ed438910378262276
×tamp=1456456126&&key=e10adc3949ba59abbe56e0duasjed8jb
最后找到一个朋友告诉我说,使用SDK提供的类方法MageSign()来生成签名,结果傻傻地调起微信APP成功了。
URL如下:
appid=wxbb221fb2439af8dh&body=定金300.00元-2015款别克20T 双离合 领先型威朗&detail=定金300.00元-2015款别克&mch_id=1314759201&nonce_str=1dqqtrf60rtbpcao8fplptwk5o00ey0y¬ify_url=http://test.tangxinzhuan.com/api/pay/notify&out_trade_no=DH201602241041377635&spbill_create_ip=124.65.159.146&time_expire=20160226112048&time_start=20160226111048&total_fee=30000&trade_type=APP&key=e10adc3949ba59abbe56e0duasjed8jb
对比前后生成的URL,让我们发现参与签名的字段名根本不是微信告诉我们的appId、partnerId、prepayId、nonceStr、timeStamp、package。(艹写微信文档的家伙!)
遇坑总结:一定要使用SDK提供的类方法MakeSign来生成签名!
【APP端注意事项】
1、安卓项目的包名称换成申请时填写的包名称。
2、用提交的签名的keystore文件打包。