微信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用。(重中之重,见红圈内代码)
![](http://img.blog.csdn.net/20160226124644419)
我遇到的坑:
微信文档告诉我说“参与签名的字段名为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文件打包。
如需提供技术支持,需支付500元劳务费,可上门手把手指导,我的手机号是 18677390510!
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
×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文件打包。
如需提供技术支持,需支付500元劳务费,可上门手把手指导,我的手机号是 18677390510!
相关文章推荐
- webapp设计注意事项
- Unity重复开关Collider造成的刚体Bug,以及重现
- Android之多种Bitmap效果
- EnevtBus 发布、订阅消息--android
- zabbix借助onealert实现微信报警
- 破解ios的环境和软件
- iOS App 的逆向工程: Hacking on Lyft
- Android之混淆心得与亲身体验
- Android 混淆代码总结
- Android VersionCode和VersionName的作用
- Android:自定义View(随机生成验证码)
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- Android传感器介绍
- 51CTO家园第一天,开始技术总结和分享之旅
- Android 进度条算法 更新进度条算法 long int
- iOS:ComponentKit 使用总结
- AndroidStudio 快捷键使用
- 怎么查看苹果设备UDID
- Android 安装程序(APK)后并启动程序(APK) 安装 卸载
- [iOS]EXC_BAD_ACCESS的本质详解以及僵尸模式调试原理