您的位置:首页 > 移动开发

微信APP支付返回-1错误

2016-02-26 12:49 295 查看
【准备事项】

1、在微信开放平台https://open.weixin.qq.com申请新应用并拿到APPID,给这个应用申请开通支付功能并拿到商户ID。

2、在商户平台https://pay.weixin.qq.com配置API密钥。

【服务器端注意事项】

1、根据SDK中的例子调用【统一下单API】拿到prepay_id。

2、签名给APP用。(重中之重,见红圈内代码)



我遇到的坑:

微信文档告诉我说“参与签名的字段名为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

&timestamp=1456456126&&key=e10adc3949ba59abbe56e0duasjed8jb

最后找到一个朋友告诉我说,使用SDK提供的类方法MageSign()来生成签名,结果傻傻地调起微信APP成功了。

URL如下:

appid=wxbb221fb2439af8dh&body=定金300.00元-2015款别克20T
双离合 领先型威朗&detail=定金300.00元-2015款别克&mch_id=1314759201&nonce_str=1dqqtrf60rtbpcao8fplptwk5o00ey0y&notify_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文件打包。

如需提供技术支持,需支付500元劳务费,可上门手把手指导,我的手机号是 18677390510!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: