接口列表
1.1 获取access_token
1.2 接收callback推送
2.1 获取ticket
2.2 获取授权页链接
2.3 接收授权完成事件
2.4 查询授权信息
2.5 拒绝领取票据接口
3.1 获取财政局s_pappid
3.2 创建财政电子票据接口
3.3 上传PDF
3.4 获取PDF
3.5 将财政电子票据添加到用户微信卡包
3.6 状态更新事件推动
3.7 更新电子票据状态
4.1 订单授权状态
4.2 错误码
# 1 通用接口
# 1.1 获取access_token
接口说明
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务。关于 access_token 的更多介绍,请参考公众号开发文档。
请求方式
请求URL:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
请求方法:GET
请求参数
返回结果 数据格式:JSON
示例代码
返回:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200
}
# 1.2 接收callback推送
登录公众平台进入【开发者中心设置】,设置接收callback的URL。用户授权领取票、财政电子票据状态更新时,微信服务器会通过这个URL通知开发者。
微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。
# 2 执收单位接口
# 2.1 获取ticket
接口说明
ticket用于加强安全性。ticket的有效期目前为2个小时,需定时刷新。建议公众号开发者使用中控服务器统一获取和刷新ticket。
请求方式
请求URL:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
请求方法:GET
返回结果
数据格式:JSON
示例代码
{
"errcode": 0,
"errmsg": "ok",
"ticket": "m7RQzjA_ljjEkt-JCoklRM5zrzYr-6PI09QydZmNXXz-opTqMv53aFj1ykRt_AOtvqidqZZsLhCDgwGC6nBDiA",
"expires_in": 7200
}
注意事项
1 ticket有效期为7200s,7200s内重复请求ticket不变。
2 执收单位后台须对ticket进行缓存,保证正常调用。
# 2.2 获取授权页链接
接口说明
通过此接口,获取授权页链接,让用户跳转到授权页。
请求方式
请求URL:https://api.weixin.qq.com/nontax/getbillauthurl?access_token={access_token}
请求方法:POST
请求参数
返回结果 数据格式:JSON
当错误码为0时,有以下信息
示例代码
请求:
{
"s_pappid": "wxabcd",
"order_id": "1234",
"money": 11,
"timestamp": 1474875876,
"source": "web",
"redirect_url": "https://mp.weixin.qq.com",
"ticket": "tttt"
}
返回:
{
"errcode": 0,
"errmsg": "ok",
"auth_url": "http://auth_url",
"expire_time": 7200
}
# 2.3 接收授权完成事件
接口说明
用户授权完成后,执收单位的公众号会收到授权完成的事件,关于事件推送请参考接受callback推送
返回结果
数据格式:xml
示例代码
<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 查询授权信息
接口说明
执收单位可以调用该接口查询订单是否有被用户授权。
请求方式
请求URL:https://api.weixin.qq.com/card/invoice/getauthdata?access_token={access_token}
请求方法:POST
请求参数
返回结果 数据格式:JSON
示例代码
请求参数
{
"s_pappid": "{s_pappid}",
"order_id": "{order_id}"
}
返回数据:
{
"errcode": 0,
"errmsg": "ok",
"invoice_status": "auth success",
"auth_time": 1480342498
}
# 2.5 拒绝领取票据接口
接口说明
用户完成授权后,执收单位若发现用户提交信息错误、或者发生了退款时,可以调用该接口拒绝领取票并告知用户。
请求方式
请求URL:https://api.weixin.qq.com/card/invoice/rejectinsert?access_token={access_token}
请求方法:POST
请求参数
返回结果
示例代码
请求:
{
"s_pappid": "d3JCEfhGLW+q0iGP+o9",
"order_id": "111229",
"reason": "1234",
"url": "avb"
}
返回:
{
"errcode": 0,
"errmsg": "ok"
}
# 3 财政局接口
# 3.1 获取财政局s_pappid
接口说明
可以通过此接口获取财政局的s_pappid,并透传给执收单位,执收单位可以通过该s_pappid参数指定提供开票服务的财政局。同一个财政局的s_pappid是一样的,所以只需要调用一次接口,并保存起来。
请求方式
请求URL:https://api.weixin.qq.com/card/invoice/seturl?access_token={access_token}
请求方法:POST
请求参数
请求参数格式为JSON,传入数据为空,即传入{}
返回结果
示例代码
请求
{}
返回
{
"errcode": 0,
"errmsg": "ok",
"invoice_url": "https://mp.weixin.qq.com/bizmall/authinvoice?action=list&s_pappid=d3xxxxxxxxxxxxxGLSS0wrL14No8c1"
}
# 3.2 创建财政电子票据接口
接口说明
财政局可以通过这个接口帮助执收单位创建一张财政电子票据模板。同一个财政局可以对应多个执收单位,同一个执收单位,使用同一个card_id,不同的执收单位,使用不同的card_id。
请求方式
请求URL:https://api.weixin.qq.com/nontax/createbillcard?access_token={access_token}
请求方法:POST
请求参数
数据格式:JSON
财政电子票据invoice_info字段
base_info字段
返回结果
当错误码为0是,有以下信息:
示例代码
请求:
{
"invoice_info" : {
"payee" : "测试非税票据",
"base_info" : {
"logo_url": : "http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZJkmG8xXhiaHqkKSVMMWeN3hLut7X7hicFNjakmxibMLGWpXrEXB33367o7zHN0CwngnQY7zb7g/0"
}
}
}
返回:
{
"errcode": 0,
"errmsg": "ok",
"card_id": "pjZ8Yt9WoOePThU0NfUKz5-tBEWU"
}
# 3.3 上传pdf
接口说明
财政局可以将票据pdf上传到微信财政电子票据平台,用于开票使用。上传的pdf有三天的有效期限制,需要在过期之前调用插卡接口。
请求方式
请求URL:https://api.weixin.qq.com/card/invoice/platform/setpdf?access_token={access_token}
请求方法:POST
请求参数
数据格式:multipart/form-data
返回结果 数据格式:JSON
示例代码
请求:
------WebKitFormBoundary2exwM16BY25kVBgf
Content-Disposition: form-data; name="pdf"; filename="1133090578170938.pdf"
Content-Type: application/pdf
Pdf content
------WebKitFormBoundary2exwM16BY25kVBgf--
返回:
{
"errcode": 0,
"errmsg": "ok",
"s_media_id": “3015806758683707”
}
# 3.4 获取pdf
接口说明
获取财政电子票据pdf。
请求方式
请求URL:https://api.weixin.qq.com/card/invoice/platform/getpdf?access_token={access_token}
请求方法:POST
请求参数
数据格式:JSON
返回结果
数据格式:JSON
示例代码
请求:
{
"action": "get_url",
"s_media_id": "75195574948725301"
}
返回:
{
"errcode": 0,
"errmsg": "ok",
"pdf_url": "https://mp.weixin.qq.com/intp/invoice/getpdf?action=media_pdf&media_key=dFRnTkV6WCswNjB1V1czZ0tVU3MhaX4yb2pxeEVSY0teSCtuflY6UXAifD5rL09kTjFpOFVWKyJGNCgxTCtkJER6VjFlRCtVU2JKcS5FZw",
"pdf_url_expire_time": 7200
}
# 3.5 将财政电子票据添加到用户微信卡包
接口说明
执收单位完成用户插卡授权后,向财政局请求给某一个订单号进行领取财政电子票据,财政局须调用该接口对用户进行开票。
请求方式
请求URL:https://api.weixin.qq.com/nontax/insertbill?access_token={access_token}
请求方法:POST
请求参数
数据格式:JSON
card_ext包含以下内容:
user_card中包含一个invoice_user_data对象,invoice_user_data包含以下字段:
返回结果 数据格式:JSON
当错误码为0是,有以下信息:
示例代码
请求:
{
"order_id" : "1511169724",
"card_ext" : {
"user_card" : {
"invoice_user_data" : {
"billing_time" : "1511169724",
"billing_code" : "aabbccdd",
"billing_no" : "1511169724",
"s_pdf_media_id" : "s_pdf_media_id",
"fee" : 123,
"title" : "灌哥发票"
}
}
},
"card_id" : "pjZ8Yt7xiy3b9UfffRIA4Tm2xTnw",
"appid" : "wxc0b84a53ed8e8d29"
}
返回:
{
"errcode": 0,
"errmsg": "ok",
"code": "682xxxx661927",
"openid": "ojZ8Ytz4lESxxxx_R1TvB2Kds"
}
# 3.6 状态更新事件推送
接口说明
当报销方更新财政电子票据状态的时候,公众平台会推送一条消息公众号消息通知财政局设置的接收事件回调的url,关于事件推送参考接口6.1.2
返回结果
数据格式:XML
示例代码
<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 更新电子票据状态
接口说明
如果财政局的财政电子票据状态发生改变,需要调用该接口,将状态同步给公众平台,确保双方财政电子票据的状态一致。
请求方式
请求URL:https://api.weixin.qq.com/card/invoice/platform/updatestatus?access_token={access_token}
请求方法:POST
请求参数
数据格式:JSON
返回结果
示例代码
请求:
{
"card_id": "pjZ8Yt7Um2jYxzneP8GomnxoVFWo",
"code": "186921658591",
"reimburse_status": "INVOICE_REIMBURSE_INIT"
}
返回:
{
"errcode": 0,
"errmsg": "ok"
}
# 4 备注
# 4.1 订单授权状态
<a name="4.2>