參照微信文檔鏈接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21512641124u4O1R
一、微信相關術語介紹:
自建平台商戶
指部分出於數據安全或性能方面的考慮,直接采購稅控設備在企業內網中搭建發票平台的大型商戶。這種類型的商戶的特點包括:發票PDF最先在商戶企業內網中生成、發票PDF在企業內網中保存、自行向用戶提供發票查驗服務等。
發票卡券
電子發票在微信卡包中的保存形態,記錄了發票的基本信息。通過發票卡券可以鏈接到發票PDF。
制券方
生成發票卡券並將發票卡券在用戶授權后保存至用戶微信卡包的主體。需擁有電子發票PDF文件並能提供穩定的發票PDF下載服務。
支付服務商
指為開票商戶提供移動支付接入服務的軟件及互聯網應用服務商,通常也為商家提供訂單系統,具有商戶的訂單數據和一定的系統開發對接能力。
報銷企業
指員工所屬的企業。報銷企業接收員工提交的電子發票,經過必要的財務流程后為員工提供報銷款。電子發票進入到報銷企業,其結構化數據用於生成報銷記錄、其發票PDF用作財務憑證歸檔保存。
報銷服務商
指為報銷企業提供獨立部署的報銷軟件或SaaS報銷應用的軟件及互聯網服務提供方。
二、電子發票總體方案流程:
三、自建平台模式准備工作介紹:
指商戶負責獲取用戶開票授權的同時,商戶自身開具電子發票並添加到用戶微信卡包。該模式中由於電子發票PDF直接在商戶自建的開票平台中生成,由商戶完成全流程較有效率。
A 需要進行的准備:
1 前往微信公眾平台申請公眾號,獲取appid和appsecret,用於調用接口。
2 獲取access_token,詳情參考獲取access_token。
3 獲取ticket,詳情參考獲取ticket。
4 配置公眾號callback,詳情參考接收callback推送。
四、卡包插入流程:
小程序開具電子發票的步驟如下:
1 提前獲取開票平台標識s_pappid,因為同一個開票平台的s_pappid都相同,所以獲取s_pappid的操作只需要進行一次。
不同接入模式獲取s_pappid的方法略有不同:
如果商戶接入模式為“自建平台模式”:s_pappid通過調用調用獲取自身開票平台識別碼接口獲得
2 商戶獲取獲取access_token。調用方法見獲取access_token;
3 設置商戶聯系方式。調用方法見設置商戶聯系方式。注意,本步驟不能忽略,否則將造成下一步獲取授權頁報錯;
4 商戶獲取授權頁ticket。調用方法見獲取授權頁ticket;
5 商戶獲取授權頁url,上一步獲取的授權頁ticket將作為參數傳入。另外,本環節里面作為參數傳入的order_id要注意保留,傳遞給開票平台作為向用戶提供電子發票的依據。調用方法見獲取授權頁鏈接;
6 在小程序開票按鈕的點擊事件上部署跳轉到小程序授權頁的邏輯。上一步獲得的auth_url和開票小程序appid要作為參數傳入。調用方法見小程序打開授權頁;
7 商戶在后台等待接收用戶的授權完成事件,獲取授權事件方法見收取授權完成事件推送;
8 創建發票卡券模板。發票卡券模板應和背后的開票主體構成一一對應關系,便於后續若開票主體發生變化時,可以便捷修改。調用方法見創建發票卡券模板;
9 在自建發票平台開具電子發票;
10 上傳發票PDF文件。此步驟獲得的s_media_id起到關聯PDF和發票卡券的作用,將作為參數在下一步的插卡接口中傳入。調用方法見上傳PDF;
11 將電子發票添加到用戶微信卡包。調用方法見將電子發票卡券插入用戶卡包。