赞
踩
最近在项目中集成微信支付sdk的时候突然出现了一些问题,在网上查询了很多资料在此总结了几点,希望可以帮助到大家.
1.首先在微信开放者平台注册,申请
这一步是你集成微信sdk的必要途径,不管你的appid是从后台获取还是申请完后写死在app项目里面的,都要在微信开放者平台申请获取appid,申请appid两个地方需要注意:1包名一定要是你applicationid对应的包名,2.签名一定要是正式版本的md5并且签名中字母尽量小写去掉冒号比如:
2.申请appid后需要在android本地集成支付sdk
这一步没什么好说的,请参照微信开放者文档,按照文件说明集成最新版本的sdk
3.获取appid(我这里的appid从后台获取,一般来说根据业务需求如果你只有一个微信服务商也可以写在本地。如果是多个就要从根据后台返回的appid去注册微信支付以及调起支付页面)
调用后台接口获取appid,sign等字段调起微信支付页面,这里也没什么需要特别注意的,按照文档来就行
4.在你app模块下面创建包名为wxapi,并在其内创建WXPayEntryActivity的类
这里特别注意:1.包名以及类名一定要在app模块src目录下并且名字不能错,如果你不放心可以看下你WXPayEntryActivity类的路径是不是 在 应用包名+wxapi路径下,如果不是微信支付回调是监听不到的 2.一定要在WXPayEntryActivity类的oncreate生命周期里面注册微信,不然支付完成也不会回调
5.清单文件里面配置WXPayEntryActivity
到了这一步可以说准备工作已经差不多了,但是你一定要注意检测你的配置是不是这三个:
第一个属性android:name这个很简单就是配置activity的路径,一般创建好activity就自动配置好了这个一般没什么问题
第二个属性:android:exported=“true”,相信做过对app安全漏洞邀请比较高的朋友们都知道这个属性,他表示当前服务是否允许被外部调用,一般默认情况我们都设置false不允许,这里设置true就表示微信需要调用这个activity,因此必须设置true
第三个属性:android:launchMode="singleTop",omg!!!,熟悉activity模式的都知道,activity有四种模式,然而我们很少很少见到有设置singleTop的,这singleTop他表示:如果当前activity位于栈顶就不用重新创建.
ok如果你仅仅配置了这三个属性,那么多恭喜你,集成微信支付sdk就此告一段落。哎,人生总有遗憾的,本大帅也不过如此,
前端时间公司对app进行安全检测了,于是乎对于activity配置加了两个属性:,没错就是一个权限一个固定屏幕的属性。这两个配置进去貌似不影响什么吧,可恶的是就是因为这两个属性支付回调一直不成功
所以:每一步一定要按照文档来
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。