- A+
近期需要接入发票功能,微信公众号开通电子发票插件 可参考官方链接:https://developers.weixin.qq.com/doc/offiaccount/WeChat_Invoice/E_Invoice/Choosing_Access_Mode.html
我们接入的是自建平台模式+小程序
接下来就是开发流程:
一、基础配置:
1. 根据公众号appid和secret 获取token
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential 【GET】
2.获取开票标识:s_pappid
https://api.weixin.qq.com/card/invoice/seturl?access_token=【POST】
3.根据token获取发票ticket(后台用户授权时需要使用ticket)
https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=wx_card&access_token=【GET】
4.设置商户联系方式(用户授权前需要先设置)
https://api.weixin.qq.com/card/invoice/setbizattr?action=set_contact&access_token=【POST】
5.设置发票卡券模板
https://api.weixin.qq.com/card/invoice/platform/createcard?access_token=【POST】
二、授权配置:
我们使用的是跳转到第三方发票闪开助手 :https://api.weixin.qq.com/card/invoice/getauthurl?access_token=【POST】
1.需要创建唯一订单号 作为 第三方的订单标识 相关订单号需要记录在 自有系统的发票订单里
2.通过调用接口返回 相关授权链接和appid(小程序才有appid)
3.小程序通过后台接口获取 相关 auth_url、appid、code(订单号)进行微信授权跳转到第三方
4.小程序操作第三方授权 后 调用后台查询授权完成状态:(传入s_pappid和订单号)
https://api.weixin.qq.com/card/invoice/getauthdata?access_token=【POST】
完成授权后-自有平台可提交开票订单(勾选需开票订单合并一张开票订单)
这样授权流程就完成了
三、发票同步微信卡券
1.通过自有平台 进行确认发票操作 执行与微信交互
确认发票:需财务填入 发票代码、发票号码、校验码、相关发票pdf文件
(相关pdf 需要转成微信媒体文件 s_media_id )
https://api.weixin.qq.com/card/invoice/platform/setpdf?access_token=【POST】
https://api.weixin.qq.com/card/invoice/insert?access_token=【POST】发布至微信卡包
这样就完成了整个流程
备注:
1.小程序前端 未调用 授权 后面发布微信卡包 会返回 用户未授权-72038
2.发票号码和代码 必须真实 否则会返回 :发票代码号码信息有误-72047
3.已开具的电子发票不能再次推送:发票代码号码已开具过电子发票-72042