微信公众号拉起发票列表

善微科技 2019 10月29日 发布

1 微信公众号拉起发票列表

接口说明

本接口功能为在微信公众号拉起发票卡券列表,用户勾选需要提交报销的发票后,开发者获得所选发票的标识信息。

本接口的调用须遵循JS-SDK的调用方法,请在开发前阅读[微信JS-SDK接口文档](http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN" target="_blank)以熟悉开发术语和基本接口的调用。

请求方式

调用chooseInvoice接口

请求参数

参数类型是否必填描述
timestampstring(32)时间戳,采用 unix 十位时间戳
nonceStrstring(32)随机字符串

返回结果

用户点击确认或取消后,将按下表所列字段格式及含义返回结果。

参数类型是否必填描述
err_msgstringok:选取发票成功,fail:选取发票失败,cancel:选取发票取消
choose_invoice_infoobject用户选中的发票列表

choose_invoice_info的对象包括以下字段

参数类型是否必填描述
card_idstring所选发票卡券的 card_id
encrypt_codestring所选发票卡券的加密 code ,报销方可以通过 card_id 和 encrypt_code 获得报销发票的信息
app_idstring开票方的 appid

示例代码

wx.config({     beta: true,     debug: false,     appId: "wx00000000000000",     timestamp: 1489030247,     nonceStr: "(9J4YRV[#@",     signature: "f027317f8910000000000000000000",     jsApiList: ['chooseInvoice'] }); wx.ready(function () {     wx.invoke('chooseInvoice', {         'timestamp': 1489030247,          'nonceStr': "p(6N&7WOAF",          }, function(res) {             alert(JSON.stringify(res));         }     }); });

2 微信小程序拉起发票列表

接口说明

支持在微信小程序中直接拉起电子发票列表

详细接口文档请参见小程序API发票部分

3 企业微信拉起发票列表

接口说明

企业微信2.1新增了选择电子发票的js-API接口,使用企业微信的企业将企业微信更新至2.1以上版本后,可快速实现在企业微信中选中电子发票的功能。

详细接口文档请参见企业微信API电子发票部分

4 外部App拉起发票列表

接口说明

对于自建移动办公应用的企业及为企业提供独立报销App的报销服务商,微信提供了外部App拉起发票列表的接口。与微信内拉起发票列表接口相似,外部App开发者在用户勾选并点击确认后,可以获得发票的标识数据。

该接口须遵循JS-SDK的调用方法,请在开发前务必检查自己是否满足以下条件:

1 获得一个已认证的 微信开放平台 账号;

2 在微信开放平台上创建一个应用并提交应用通过审核。未注册应用的开发者可在开发者应用登记页面进行登记;

3 通读 微信开放平台资源中心 中关于SDK使用的基本方法,并正确导入到自身的应用中。

请求方式

iOS应用

参考压缩包内的OpenSDK1.7.7文件,使用时调用WXChooseInvoice类。其中需要签名的部分,参考JS-SDK的调用方式。 示例代码

—(void)getlnvoiceWithTicket: (NSString*)ticket whenComptetion: (void(^)(NSString* result, NSString*errorDesc) )comptetion{ BOOL isWXApplnstalled = [WXApi isWXApplnstalled];  if (!isWXApplnstalled) { // 用户没装微信,直接返回。 completion(nil.,@”Wechat Not installed”); return; } _completion = completion; WXChooselnvoiceReq *cardReq = [[WXChooselnvoiceReq alloc]initl;  cardReq. applD = WechatlnvoiceAppld; cardReq.timeStamp = [[NSDate date]timelntervalSince1970];  NSString* timeStamp = [NSString stringWithFormat:@”%d”,cardReq.timeStamp];  cardReq. nonceStr = @“sfim_invoice”; NSString *cardSign = [self genCardSignWithNonceStr: cardReq.nonceStr andTimeStr: timeStamp andApiTicket:ticket]; cardReq.cardSign = cardSign; [WXApi sendReq:cardReq];//发送

Android应用

参考压缩包内,进入jar文件,使用时调用ChooseCardFromWXCardPackage类,并传入CardType为“INVOICE”。其中需要签名的部分,参考JS-SDK的调用方式。

返回结果

用户点击确认或取消后,将按下表所列字段格式及含义返回结果。

参数类型是否必填描述
err_msgstringok:选取发票成功,fail:选取发票失败,cancel:选取发票取消
choose_invoice_infoobject用户选中的发票列表

choose_invoice_info的对象包括以下字段

参数类型是否必填描述
card_idstring所选发票卡券的 card_id
encrypt_codestring所选发票卡券的加密 code ,报销方可以通过 card_id 和 encrypt_code 获得报销发票的信息
app_idstring开票方的 appid

5 查询报销发票信息

接口说明

通过该接口查询电子发票的结构化信息,并获取发票PDF文件。

请求方式

请求URL:https://api.weixin.qq.com/card/invoice/reimburse/getinvoiceinfo?access_token={access_token}

请求方法:POST

请求参数

请求参数使用JSON格式,字段如下:

参数类型是否必填描述
card_idstring发票卡券的 card_id
encrypt_codestring发票卡券的加密 code ,和 card_id 共同构成一张发票卡券的唯一标识

返回结果

返回结果为JSON格式,字段如下:

参数类型是否必填描述
errcodeInt错误码
errmsgString错误信息

当错误码为0时,有以下信息:

参数类型是否必填描述
card_idString发票 id
begin_timeInt发票的有效期起始时间
end_timeInt发票的有效期截止时间
openidString用户标识
typeString发票的类型,如广东增值税普通发票
payeeString发票的收款方
detailString发票详情
user_infoObject用户可在发票票面看到的主要信息

user_info包含以下信息:

参数类型是否必填描述
feeInt发票加税合计金额,以分为单位
titleString发票的抬头
billing_timeInt开票时间,为十位时间戳(utc+8)
billing_noString发票代码
billing_codeString发票号码
infoList商品信息结构,见下方说明
fee_without_taxInt不含税金额,以分为单位
taxInt税额,以分为单位
如没特殊注明,文章均为善微网络原创,转载请注明来自https://www.sanways.com/news/608.html