Android app对接微信电子发票功能

2019-04-19  本文已影响0人  Dirtykk

最新项目需要对接微信的电子发票功能 业务场景如下图所示:

业务场景

参考官方给出的文档提示 先搞清楚整个业务流程

业务流程

    搞清楚大致的业务流程之后  可以开始对接微信平台了

1  第一步 必备数据

        先准备必要的一些账户信息  比如在微信平台注册的 appid 和app secret  注意这个注册信息的时候 需要用到应用的包名和签名文件  签名信息中有 md5,sha1,sha256 三种  但是微信平台并没有明确提示使用哪一种  。这边我使用的是sha256  我推测通常平台都是使用这种类型 因为sha256的安全性更高 ,实际开发中,暂时未发现报错  但是没有验证其它两种  所以不做评论 感兴趣的可以自己去试验一下

2 第二步  对接sdk  

        最新的sdk已经改成jcenter远程仓库了 所以只需要添加依赖即可

dependencies {

    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

}

或者添加

dependencies {

    compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

}

3  获取access_token  官方提供的接口

    https请求方式: GET

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

4 具体的代码逻辑 

    主要的请求类是 ChooseCardFromWXCardPackage,不多说 直接上代码

api实例 详细代码片段

其中 req的参数  可以通过js-sdk获取 详情可以去看官方文档  因为我这边后台的同事已经处理好了 所以就不展示获取参数的代码了  一定要注意  checkargs()这个方法  这个方法会验证你的参数 有哪几个是必填的 . 通过这两步就可以直接打开微信的电子发票界面了 算是完成了30%

5  选择发票的数据回调

    在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,manifest文件里面加上exported属性,设置为true,(在多渠道打包的情况下 一点要注意这个WXEntryActivity类资源的路径问题 )  

实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法,在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法 

上一篇下一篇

猜你喜欢

热点阅读