微信扫码支付的坑(android)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Edisonliao666/article/details/51669945

微信支付相信很多同学都做过,正常的流程是:app ->商户后台 ->微信支付后台,而微信开发者中提供的SDK也是指引我们去搭建一个自己的后台,然后去跟微信后台对接,微信SDK位置:

说完正常流程,说说不正常的流程–app直接跟微信后台对接,也就是说正常流程中的商户后台在app中去实现,当听到这个需求我真他妈醉了……

由于微信支提供了一份由于搭建后台的SDK,所以只好死马当活马医了,微信这样做也是好理解的,因为支付涉及到安全问题,把证书放在终端是不安全的,所以微信也没有弄个andoird的支付SDK,幸好微信给的这份SDK是java写的………..

既然是后台的代码,那我们先用强大的Eclipse瞅一眼长啥样
这里写图片描述
看到工程左上角蓝色的M吗?这是个maven工程,再次说明微信是指引我们去搭建一个自己的后台!

然后我强行把这个工程转移到Android Studio里面…..蛋蛋马上要碎
这里写图片描述
这里我把libs里面用到的其它jar包P掉,还原刚开始转移的情况,我建包按照maven工程项目结构来命名,意思就是Android Studio与Eclipse的项目结构是一样样的,好,然后天真的运行app…..
这里写图片描述
咦…这么少错误,好嗨森,我没有还原最初的app运行情况,第一次运行的时候是一大堆红色感叹号一大堆Error,内容的大概意思都跟这个一样,就是Jar包冲突!

jar包冲突的原因是,有两个或者多个jar包都实现了相同的功能,就如图,xpp3-1.1.4c跟xpp3_min-1.1.4c都用了apache的org.xmlpull.v1.XmlPullParserFactory,你可能会问,既然jar包冲突的话,为什么腾讯还把功能相同的jar包引进来呢?我个人觉得有两种情况,第一是这份SDK是要来开发后台用的,对于后台开发来说不存在这种问题;第二是腾讯让我们在几个jar包中选一个来用……但是我觉得应该是第一种情况

解决办法:既然是实现了相同的功能,那就留其中一个,这里选择xpp3-1.1.4c……类似的情况还有http开头的四个jar包,最后我只选择了httpclient-4.3.5这个

解决了这个问题,基本上就可以进行自己的开发,这里要夸一下微信的技术支持还是做得很好的!
这里写图片描述
最后,还是要吐槽一下这份微信支付SDK,除了代码里有注释说明,没有文档去说明这SDK咋用啊,差评!

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页