开票业务场景说明(微信“开票接入能力”接入模式)


上一篇 : 开票业务场景说明(自建平台模式) 下一篇: 报销业务场景说明



目录
1. 公众号开票
2. 扫码开票
3. App开票
4. 小程序开票
5. 支付后开票

导读

本节文档介绍了在“微信开票接入能力”接入模式下,商户向用户开具电子发票的不同业务场景。包括了场景的描述,基本的交互体验介绍和分步商户可根据自身应用实际,选择对应的业务场景,根据文档进行分步骤开发。文档中的每一个步骤需要调用的接口都添加了接口文档链接,商户及开发者可以直接跳转查看对应的接口文档。

1. 公众号开票

1.1 场景描述

公众号开票的场景主要见于公众号内发起的购买行为和微信内H5页面购买行为后进行开票。商户H5页面上设置开票按钮,用户点击开票按钮后跳转到微信授权页,完成授权后用户可返回原页面,或者重定向到商户的其它页面(如订单页)。发票开好后会同步到用户的微信卡包,整个开票过程是异步过程,用户无需在页面等待,既保证了用户能收到发票,也解决了开票时间不稳定的问题。

1.2 交互介绍

公众号开票交互图如下
bkJNmnN1H9HJlVMWFCV36AreEEKOHAdKTcjHJCXZiTsIT25urRISf7IpwKpvTiIJ.png

1.3 接口调用流程

公众号开票的时序图如下
4yhRqe3nUsdkF84XVuVEkfyNdpy43PG_r6KiaSy9K9CcshLX-5ZkgOCrX8O7UtC9.png
公众号场景下开具电子发票的步骤如下:
1 提前获取开票平台标识s_pappid,因为同一个开票平台的s_pappid都相同,所以获取s_pappid的操作只需要进行一次。不同接入模式获取s_pappid的方法略有不同:

如果商户接入模式为“使用公众平台账号接入电子发票”:s_pappid可以在进入“已完成”状态的订单详情页面找到。具体位置参见**接入模式说明**文档中的`相关章节`

2 商户获取获取access_token。调用方法见获取access_token
3 商户获取授权页ticket。调用方法见获取授权页ticket
4 商户获取授权页url,上一步获取的授权页ticket将作为参数传入。另外,本环节里面作为参数传入的order_id要注意保留,传递给开票平台作为向用户提供电子发票的依据。调用方法见获取授权页链接
5 将授权页url添加到开票按钮上,供点击跳转;
6 商户在后台等待接收用户的授权完成事件,获取授权事件方法见收取授权完成事件推送
7 发起开票请求,之前在第4步时传入的order_id需作为其中一个参数传入,调用方法见统一开票接口
8 开票平台开具电子发票,插入用户卡包。(本步骤由开票平台完成,商户无需开发)

2. 扫码开票

2.1 场景描述

扫码开票的场景主要见于向用户提供小票的线下行业,如零售、餐饮、便利店、加油站等。商户将订单信息转换成开票二维码,打印到小票上,随小票提供给用户。用户扫描二维码后跳转到微信授权页,使用保存在微信中的抬头信息进行快速填写,点击开票后可以关闭页面或者重定向到商户的其它页面(如订单页)。发票开好后会同步到用户的微信卡包,通过用户自助进行开票,无需安排额外的人手负责开票,能有效提升柜台效率。整个开票过程是异步过程,用户无需在页面等待,既保证了用户能收到发票,也解决了开票时间不稳定的问题。

2.2 交互介绍

扫码开票交互图如下
2bGRopakc_-p-UX80d93rKZxoeWepsgHSXJ_tvObvnUxP9TceYO5avmpxseqPtxy.png

2.3 接口调用流程

扫码开票的时序图如下
LGlNSiQgKrsKrwq4b3qxKeiP_KJMH28VTUgh8ecliGo9w0zNVK2NxrcUIgNpMgcK.png
扫码开票场景下开具电子发票的步骤如下:
1 提前获取开票平台标识s_pappid,因为同一个开票平台的s_pappid都相同,所以获取s_pappid的操作只需要进行一次。不同接入模式获取s_pappid的方法略有不同:

如果商户接入模式为“使用公众平台账号接入电子发票”:s_pappid可以在进入“已完成”状态的订单详情页面找到。具体位置参见**接入模式说明**文档中的`相关章节`

2 商家将订单信息按照自身业务逻辑生成二维码,印制到小票上供用户扫描,本步骤根据商户自身业务逻辑生成,不涉及调用微信接口
3 商户获取获取access_token。调用方法见获取access_token
4 商户获取授权页ticket。调用方法见获取授权页ticket
5 商户获取授权页url,上一步获取的授权页ticket将作为参数传入。另外,本环节里面作为参数传入的order_id要注意保留,传递给开票平台作为向用户提供电子发票的依据。调用方法见获取授权页链接
6 商户在后台等待接收用户的授权完成事件,获取授权事件方法见收取授权完成事件推送
7 发起开票请求,之前在第4步时传入的order_id需作为其中一个参数传入,调用方法见统一开票接口
8 开票平台开具电子发票,插入用户卡包。(本步骤由开票平台完成,商户无需开发)

3. App开票

3.1 场景描述

App开票的场景主要用于通过App开展业务的商户,如电商、线上服务平台等。商户App界面上设置开票按钮,用户点击开票按钮后拉起微信跳转到授权页,完成授权后用户可返回原App。发票开好后会同步到用户的微信卡包,整个开票过程是异步过程,用户无需在微信中等待,确保了用户在商户App中体验的连贯和流畅性。

3.2 交互介绍

App开票交互图如下
ZI1LxH036k29K0eEY3Sg8PG24ITimT0FBKU6LwxVAcmFrRSJYa2PdPucNWsP3ByH.png

3.3 接口调用流程

App开票的时序图如下
_CPeHzJTCCat76bJmkZqTzBRAueM_9o5W8uU_h8KPemh302cRVM7IhGfQozEweXy.png
App开具电子发票的步骤如下:
1 确认App中已经安装最新版的微信SDK
2 提前获取开票平台标识s_pappid,因为同一个开票平台的s_pappid都相同,所以获取s_pappid的操作只需要进行一次。不同接入模式获取s_pappid的方法略有不同:

如果商户接入模式为“使用公众平台账号接入电子发票”:s_pappid可以在进入“已完成”状态的订单详情页面找到。具体位置参见**接入模式说明**文档中的`相关章节`

3 商户使用开放平台(open账号)的appid,获取获取access_token。调用方法见获取access_token
4 商户获取授权页ticket。调用方法见获取授权页ticket
5 商户获取授权页url,上一步获取的授权页ticket将作为参数传入。另外,本环节里面作为参数传入的order_id要注意保留,传递给开票平台作为向用户提供电子发票的依据。调用方法见获取授权页链接
6 使用第5步获得的授权页url(auth_url)作为传入参数,拉起微信客户端打开授权页。iOS端拉起方法见iOS客户端打开授权页、Android拉起方法见Android客户端打开授权页
7 商户在后台等待接收用户的授权完成事件。注意:此阶段用的是公众号的 appid来接收,请不要与开放平台账号的appid混淆。获取授权事件方法见收取授权完成事件推送;
8 发起开票请求,之前在第4步时传入的order_id需作为其中一个参数传入,调用方法见统一开票接口
9 开票平台开具电子发票,插入用户卡包。(本步骤由开票平台完成,商户无需开发)

4. 小程序开票

4.1 场景描述

小程序开票的场景主要见于小程序内发起购买行为后进行开票。商户小程序页面上设置开票按钮,用户点击开票按钮后跳转到小程序开票授权页,完成授权后用户可返回原页面,或者重定向到商户的其它页面(如订单页)。发票开好后会同步到用户的微信卡包,整个开票过程是异步过程,用户无需在页面等待,开票时间不稳定的问题,真正做到“用完即走”。

4.2 交互介绍

小程序开票交互图如下
gpV-24LZPmrSQVWsHibTV7N--oWo0vEBOSnmfhHY17cVzmd2bg6j3AGIFrVqm_M3.png

4.3 接口调用流程

小程序开票的时序图如下
V_VKe2odUpQwJS0N7joRKAQ71Y_BmRH5Euwj6ZhdwxG3QyhW8EucZVMjrXbkNNie.png

小程序开具电子发票的步骤如下:
1 提前获取开票平台标识s_pappid,因为同一个开票平台的s_pappid都相同,所以获取s_pappid的操作只需要进行一次。不同接入模式获取s_pappid的方法略有不同:

如果商户接入模式为“使用公众平台账号接入电子发票”:s_pappid可以在进入“已完成”状态的订单详情页面找到。具体位置参见**接入模式说明**文档中的`相关章节`

2 商户获取获取access_token。调用方法见获取access_token
3 商户获取授权页ticket。调用方法见获取授权页ticket
4 商户获取授权页url,上一步获取的授权页ticket将作为参数传入。另外,本环节里面作为参数传入的order_id要注意保留,传递给开票平台作为向用户提供电子发票的依据。调用方法见获取授权页链接
5 在小程序开票按钮的点击事件上部署跳转到小程序授权页的逻辑。上一步获得的auth_url和开票小程序appid要作为参数传入。调用方法见小程序打开授权页
6 商户在后台等待接收用户的授权完成事件,获取授权事件方法见收取授权完成事件推送
7 发起开票请求,之前在第4步时传入的order_id需作为其中一个参数传入,调用方法见统一开票接口
8 开票平台开具电子发票,插入用户卡包。(本步骤由开票平台完成,商户无需开发)

5. 支付后开票

5.1 场景描述

支付后开票通过和微信支付相结合,提供了一种新的发起开票的途径。用户可以在微信支付凭证中看到开具电子发票的入口,这能为某些打印小票存在一定困难的线下场景(如停车场闸机)是一个良好的开票路径,其它需要打印小票的场景,考虑到小票存在丢失的可能,也可以使用支付后开票作为补充。用户使用微信支付完成消费后,付款凭证上会出现开票入口,用户点击开票按钮后提交抬头信息并完成开票授权。发票开好后会同步到用户的微信卡包,整个开票过程是异步过程,既保证了用户能收到发票,也解决了开票时间不稳定的问题。

5.2 交互介绍

支付后开票交互图如下
b9InItLQcY1BA2XhrqkXNQS2IDaKn79mx1W5wKWElFXe2I79sqhLm3txZ80z93nt.png

5.3 接口调用流程

支付后开票的时序图如下
CtM3KGTqZaC9MpqBVGlz6MbRQ5nciIjOQExHp2LugSGIId6jGq8bnmw-5h1-Ytiu.png
支付后开票的步骤如下:
1 提前获取开票平台标识s_pappid,因为同一个开票平台的s_pappid都相同,所以获取s_pappid的操作只需要进行一次。不同接入模式获取s_pappid的方法略有不同:

如果商户接入模式为“使用公众平台账号接入电子发票”:s_pappid可以在进入“已完成”状态的订单详情页面找到。具体位置参见**接入模式说明**文档中的`相关章节`

2 商户获取获取access_token。调用方法见获取access_token
3 关联商户号和开票平台。本步骤为一次性设置,后续一般在遇到开票平台识别号变更,或者商户更换开票平台时才需要调用本接口重设对应关系。调用方法见关联商户号和开票平台
4 查询关联状态,确认商户号已经和开票平台关联成功。调用方法见查询商户号与开票平台关联情况
5 在发起支付请求的时候指定每一笔交易的支付后开票。在步骤3关联了商户号和开票平台后不代表每一笔支付都会出现开票入口,需要通过本步接口进一步制定才能让支付凭证上出现开票入口。调用方法见指定单笔支付支持支付后开票
6 商户在后台等待接收用户的授权完成事件,接收授权完成事件所用的appid为商户号关联的appid。获取授权事件方法见收取授权完成事件推送
7 发起开票请求,之前在第4步时传入的order_id需作为其中一个参数传入,调用方法见统一开票接口
8 开票平台开具电子发票,插入用户卡包。(本步骤由开票平台完成,商户无需开发)


上一篇 : 开票业务场景说明(自建平台模式) 下一篇: 报销业务场景说明