电子小票与纸质小票都是线下购物的有效凭证,是纸质小票的电子化形态。电子小票易于存储、查看,便于消费追溯、获取售后服务等。
目前微信官方推出电子小票功能方案分为两种
1.小程序接入方案:微信电子小票通过API接口与商户收银/ERP系统对接,商户将自己小程序中的线下订单详情页path路径,通过接口随每笔支付回传微信,微信将通过支付消息凭证为用户下发该笔小票。用户点击后,直接跳转进入商户小程序的订单详情查看小票信息。
但是该方案依赖商户具备小程序线下订单详情
2.图片接入方案:微信电子小票通过API接口与商户收银/ERP系统对接,商户将小票数据转化为图片格式,通过接口随每笔支付回传微信,微信将通过支付消息凭证为用户下发该笔小票图片。
笔者使用的是第二种方案,
因公司为saas服务商,服务的各个商家不一定有自己的小程序,所以采用图片回传的方式去进行微信电子小票的实现
最终的实现效果是这样的:
一般的支付详情中是没有【浏览商家小票】这个按钮的,这个是实现之后的效果,点击之后能看到我上传的商家小票信息
3.申请开通
不管是哪种方案接入,都需要联系微信对应DB进行方案接入,申请邮件中填入需要申请的微信商户号等信息,服务商模式则只需要填写服务商商户号,其子商户会一并开通不需要额外申请
4.对接流程
官方流程:
接口:/v3/marketing/shopping-receipt/shoppingreceipts
域名:https://api.mch.weixin.qq.com
对接前需要引入微信支付的相关jar包
pom可导入dependency
<dependency> <groupId>com.github.wechatpay-apiv3</groupId> <artifactId>wechatpay-apache-httpclient</artifactId> <version>0.4.9</version> </dependency>
String filePath = "/your/home/test.png";
URI uri = new URI("https://api.mch.weixin.qq.com/v3/marketing/shopping-receipt/shoppingreceipts");
File file