简介
目前市面上边最火的三方支付当属支付宝支付和微信支付。而在我们开发项目过程中,如果有需要集成第三方支付功能的话,绝大部分小伙伴也都是去集成这两个支付的。android开发中集成这两个支付我自己只是集成过两种,一种是直接集成支付宝、微信官方的支付,另一种是ping++,ping++是一种将支付宝、微信、银联、京东等支付集成在一起,是一个平台,详情请移步ping++开发平台。这边就只说下在集成微信支付时候遇到的问题。说明
只要按照官方文档的操作步骤复制对应的jar包、so文件、libs库文件、对应权限、及清单文件中需要配置的东西等等,然后去支付,支付宝支付是不管是直接运行app到手机上边支付还是打包成线上版apk文件去测试支付都是没有问题的,一般情况也不存在问题,所以这里对支付宝支付就不做说明,只要按照官方给的demo流程,应该是没有问题的;而微信支付是比较蛋疼的,必须打包apk进行测试,而一般微信支付会遇到上边的code为1的问题,这个问题的原因一般就是微信签名不一致问题,下边对这个问题来说明下。具体怎样集成支付宝、微信步骤这里不再说明,直接参照ping++给的demo集成集合,这里只是对出现的问题进行说明下。原因
这里我给出两种解决方案,第一种就是网上给的解决方案,第二种就是我自己在下边写的解决方案。
第一种:
1、项目的 package 名字、AndroidManifest.xml 里面的包名,必须和微信开放平台注册的一致;
2、必须打包成为发布版本的 apk,apk 签名必须和在微信开放平台注册的一致,微信开放平台签名要求: MD5,无冒号;
3、清理微信缓存;
4、如果签名包名均正确,仍旧返回 -1 报错,请检查时间戳格式是否有问题或重置微信开放平台的安卓版本的签名包名。
这样如果还没解决签名问题的话,可以试下下边我自己的解决方案
第二种:
可以把自己项目打成线上版的apk,然后使用下边操作——为了避免注册时弄错签名,建议直接用打包出来的apk查看签名,具体如下:
1) 将apk修改后缀为 .rar文件后解压;
2) 进入解压后的META-INF目录,该目录下会存在文件CERT.RSA
3) 在该目录下打开cmd,输入命令 :keytool -printcert -file CERT.RSA
这里将会显示出MD5和SHA1签名。如下图
这里可以将这个MD5给后台,就应该可以解决签名问题了时
注意:
微信支付需要的是 MD5值,百度地图需要的是SHA1值