Android app對(duì)接微信電子發(fā)票功能

最新項(xiàng)目需要對(duì)接微信的電子發(fā)票功能 業(yè)務(wù)場(chǎng)景如下圖所示:

業(yè)務(wù)場(chǎng)景

參考官方給出的文檔提示 先搞清楚整個(gè)業(yè)務(wù)流程

業(yè)務(wù)流程

? ? 搞清楚大致的業(yè)務(wù)流程之后? 可以開始對(duì)接微信平臺(tái)了

1? 第一步 必備數(shù)據(jù)

????????先準(zhǔn)備必要的一些賬戶信息? 比如在微信平臺(tái)注冊(cè)的 appid 和app secret? 注意這個(gè)注冊(cè)信息的時(shí)候 需要用到應(yīng)用的包名和簽名文件? 簽名信息中有 md5,sha1,sha256 三種? 但是微信平臺(tái)并沒有明確提示使用哪一種? 。這邊我使用的是sha256? 我推測(cè)通常平臺(tái)都是使用這種類型 因?yàn)閟ha256的安全性更高 ,實(shí)際開發(fā)中,暫時(shí)未發(fā)現(xiàn)報(bào)錯(cuò)? 但是沒有驗(yàn)證其它兩種? 所以不做評(píng)論 感興趣的可以自己去試驗(yàn)一下

2 第二步? 對(duì)接sdk??

????????最新的sdk已經(jīng)改成jcenter遠(yuǎn)程倉(cāng)庫(kù)了 所以只需要添加依賴即可

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請(qǐng)求方式: GET

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

4 具體的代碼邏輯?

? ? 主要的請(qǐng)求類是?ChooseCardFromWXCardPackage,不多說 直接上代碼

api實(shí)例
詳細(xì)代碼片段

其中 req的參數(shù)? 可以通過js-sdk獲取 詳情可以去看官方文檔? 因?yàn)槲疫@邊后臺(tái)的同事已經(jīng)處理好了 所以就不展示獲取參數(shù)的代碼了? 一定要注意? checkargs()這個(gè)方法? 這個(gè)方法會(huì)驗(yàn)證你的參數(shù) 有哪幾個(gè)是必填的 . 通過這兩步就可以直接打開微信的電子發(fā)票界面了 算是完成了30%

5? 選擇發(fā)票的數(shù)據(jù)回調(diào)

? ??在你的包名相應(yīng)目錄下新建一個(gè)wxapi目錄,并在該wxapi目錄下新增一個(gè)WXEntryActivity類,manifest文件里面加上exported屬性,設(shè)置為true,(在多渠道打包的情況下 一點(diǎn)要注意這個(gè)WXEntryActivity類資源的路徑問題 )??

實(shí)現(xiàn)IWXAPIEventHandler接口,微信發(fā)送的請(qǐng)求將回調(diào)到onReq方法,發(fā)送到微信請(qǐng)求的響應(yīng)結(jié)果將回調(diào)到onResp方法,在WXEntryActivity中將接收到的intent及實(shí)現(xiàn)了IWXAPIEventHandler接口的對(duì)象傳遞給IWXAPI接口的handleIntent方法?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容