# 将电子发票卡券插入用户卡包

调试工具

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:insertinvoice

本接口由开票平台或自建平台商户调用。对用户已经授权过的开票请求,开票平台可以使用本接口将发票制成发票卡券放入用户的微信卡包中。

值得关注的是,如果授权页由商户拉起,而插卡递送发票的动作由开票平台来完成的话,商户需要将需要存入微信卡包的标识和order_id在开票请求中发送给开票平台。

注意:需要使用之前调用获取s_pappid接口时的开票平台公众号appid调用本接口,否则会造成报错,插卡失败。

# 1. 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/card/invoice/insert?access_token=ACCESS_TOKEN

# 云调用

  • 本接口不支持云调用

# 第三方调用

  • 本接口支持第三方平台代商家调用。

  • 该接口所属的权限集 id 为:8、26

  • 服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。

# 2. 请求参数

# 查询参数 Query String parameters

参数名类型必填说明
access_tokenstring接口调用凭证,可使用 access_tokenauthorizer_access_token

# 请求体 Request Payload

参数名类型必填说明
order_idstring发票order_id,既商户给用户授权开票的订单号
card_idstring发票card_id
appidstring该订单号授权时使用的appid,一般为商户appid
card_extobject发票具体内容

# Body.card_ext Object Payload

发票具体内容

参数名类型必填说明
nonce_strstring随机字符串,防止重复
user_cardobject用户信息结构体

# Body.card_ext.user_card Object Payload

用户信息结构体

参数名类型必填说明
invoice_user_dataobject用户信息

# Body.card_ext.user_card.invoice_user_data Object Payload

用户信息

参数名类型必填说明
feenumber发票的金额,以分为单位
titlestring发票的抬头
billing_timenumber发票的开票时间,为10位时间戳(utc+8)
billing_nostring发票的发票号码;数电发票传20位发票号码
billing_codestring发票的发票代码;数电发票发票代码为空
infoobjarray商品详情结构
fee_without_taxnumber不含税金额,以分为单位
taxnumber税额,以分为单位
s_pdf_media_idstring发票pdf文件上传到微信发票平台后,会生成一个发票s_media_id,该s_media_id可以直接用于关联发票PDF和发票卡券。
s_trip_pdf_media_idstring其它消费附件的PDF,如行程单、水单等
check_codestring校验码,发票pdf右上角,开票日期下的校验码;数电发票发票校验码为空
buyer_numberstring购买方纳税人识别号
buyer_address_and_phonestring购买方地址、电话
buyer_bank_accountstring购买方开户行及账号
seller_numberstring销售方纳税人识别号
seller_address_and_phonestring销售方地址、电话
seller_bank_accountstring销售方开户行及账号
remarksstring备注,发票右下角初
cashierstring收款人,发票左下角处
makerstring开票人,发票下方处

# Body.card_ext.user_card.invoice_user_data.info(Array) Object Payload

商品详情结构

参数名类型必填说明
namestring项目的名称
numnumber项目的数量
unitstring项目的单位,如个
pricenumber项目的单价

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
errcodenumber错误码
errmsgstring错误信息
codestring发票code
openidstring获得发票用户的openid
unionidstring只有在用户将公众号绑定到微信开放平台账号后,才会出现该字段

# 4. 注意事项

本接口无特殊注意事项

# 5. 代码示例

请求示例

{
	"order_id": "111163",
	"card_ext": {
		"nonce_str": "j!Re1WxaHv",
		"user_card": {
			"invoice_user_data": {
				"info": [
					{
						"price": 10000,
						"num": 3,
						"name": "牙膏",
						"unit": "个"
					}
				],
				"billing_no": "4545145712",
				"billing_code": "4541212454512",
				"billing_time": "1468306058",
				"tax": 123,
				"s_pdf_media_id": "s_pdf_media_id_abc123",
				"fee": 123,
				"title": "灌哥发票",
				"fee_without_tax": 2345
				"buyer_number":"123456789012345678"
			}
		}
	},
	"card_id": "pjZ8Yt9WoOePThU0NfUKz5-tBEWU",
	"appid": "wxc0b84a53ed8e8d29"
}

返回示例

{
	"errcode": 0,
	"errmsg": "ok",
	"code": "682xxxx661927",
	"openid": "ojZ8Ytz4lESxxxx_R1TvB2Kds"
}

# 6. 错误码

以下是本接口的错误码列表,其他错误码可参考 通用错误码

错误码错误描述解决方案
40001invalid credential  access_token isinvalid or not latestaccess_token 无效或不为最新获取的 access_token,请开发者确认access_token的有效性

# 7. 适用范围

本接口在不同账号类型下的可调用情况:
公众号服务号
  • ✔:该账号可调用此接口
  • 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;