美文网首页
Android app对接微信电子发票功能

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

作者: Dirtykk | 来源:发表于2019-04-19 21:26 被阅读0次

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

    业务场景

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

    业务流程

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

    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方法 

    相关文章

      网友评论

          本文标题:Android app对接微信电子发票功能

          本文链接:https://www.haomeiwen.com/subject/jxcbyqtx.html