# 一、通用接口

# 1.1 获取access_token

参考获取接口调用凭据

# 1.2 接收callback推送

登录公众平台进入【开发者中心设置】,设置接收callback的URL。用户授权领取票、财政电子票据状态更新时,微信服务器会通过这个URL通知开发者。

微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。

# 二、执收单位接口

# 2.1 获取ticket

参考获取sdk临时票据

# 2.2 获取授权页链接

参考获取授权页链接

# 2.3 接收授权完成事件

接口说明
用户授权完成后,执收单位的服务号会收到授权完成的事件,关于事件推送请参考接受callback推送
返回结果
数据格式:xml

参数 类型 描述
ToUserName String 服务号标识
FromUserName String 用户 openID
CreateTime Int 事件时间
MsgType String 固定为event
Event String 固定为user_authorize_invoice
SuccOrderId String 授权成功的订单号
FailOrderId String 授权失败的订单号
AuthorizeAppId String 用于接收事件推送的服务号的AppId
Source String 授权来源,web表示来自微信内H5

示例代码

<xml>
	<ToUserName><![CDATA[gh_fc0a06a20993]]></ToUserName>
	<FromUserName><![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]></FromUserName>
	<CreateTime>1475134700</CreateTime>
	<MsgType><![CDATA[event]]></MsgType>
	<Event><![CDATA[user_authorize_invoice]]></Event>
	<SuccOrderId><![CDATA[1202933957956]]></SuccOrderId>
	<FailOrderId><![CDATA[]]></FailOrderId>
	<AuthorizeAppId><![CDATA[]]></AuthorizeAppId>
	<Source><![CDATA[]]></Source>
</xml>

# 2.4 查询授权信息

参考查询授权信息

# 2.5 拒绝领取票据接口

参考拒绝开票

# 三、财政局接口

# 3.1 获取财政局s_pappid

参考获取开票平台识别码

# 3.2 创建财政电子票据接口

参考创建财政电子票据模板

# 3.3 上传pdf

参考上传发票PDF

# 3.4 获取pdf

参考查询已上传的PDF文件

# 3.5 将财政电子票据添加到用户微信卡包

参考票据插入用户卡包

# 3.6 状态更新事件推送

接口说明
当报销方更新财政电子票据状态的时候,公众平台会推送一条消息服务号消息通知财政局设置的接收事件回调的url,关于事件推送参考接口6.1.2
返回结果
数据格式:XML

参数 类型 是否必填 描述
ToUserName String 服务号标识
FromUserName String 用户openid
CreateTime Int 事件时间
MsgType String 固定为"event"
Event String 固定为"update_invoice_status"
Status String 财政电子票据报销状态
CardId String 财政电子票据id
Code String 财政电子票据code

示例代码

<xml>
<ToUserName><![CDATA[gh_9e1765b5568e]]></ToUserName>
<FromUserName><![CDATA[ojZ8Ytz4lESgdWZ34L_R1TvB2Kds]]></FromUserName>
<CreateTime>1478068440</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[update_invoice_status]]></Event>
<Status><![CDATA[INVOICE_REIMBURSE_INIT]]></Status>
<CardId><![CDATA[pjZ8Yt7Um2jYxzneP8GomnxoVFWo]]></CardId>
<Code><![CDATA[186921658591]]></Code>
</xml>

# 3.7 更新电子票据状态

参考更新发票卡券状态

# 四、备注

# 4.1 订单授权状态

状态 描述
never auth 用户未授权
auth success 用户已授权
auth time out 用户授权后,领取票据超时
invoice send 用户授权后,领取票成功
reject insert 撤销领取票据
invoice sending 用户授权后,领取中

# 4.2 错误码

状态 描述 备注
0 OK 成功
72015 unauthorized create invoice 没有操作权限,请检查是否已开通相应权限。
72031 invalid params 参数错误。可能为请求中包括无效的参数名称或包含不通过后台校验的参数值
72035 biz reject insert 财政电子票据已经被拒绝领取。若 order_id 被用作参数调用过拒绝领取接口,再使用此 order_id 插卡机会报此错误
72036 invoice is busy 财政电子票据正在被修改状态,请稍后再试
72038 invoice order never auth 订单没有授权,可能是财政局的s_pappid 、执收单位 appid 、订单 order_id 不匹配
72040 invoice pdf error Pdf 无效,请提供真实有效的 pdf
72042 billing_code and billing_no repeated 票据号码和票据代码重复
72043 billing_code or billing_no size error 票据号码和票据代码错误
40078 invalid card status card_id 未授权。 若开发者使用沙箱环境报此错误,主要因为未将调用接口的微信添加到测试把名单; 若开发者使用正式环境报此错误,主要原因可能为:调用接口服务号未开通卡券权限,或创建 card_id 与插卡时间间隔过短。