微信JS-SDK提供了丰富的API,允许开发者调用微信中的各种功能,包括发票功能。通过chooseInvoiceTitle
接口,用户可以选择开具发票并获取发票信息。本文将详细介绍如何使用微信JS-SDK调用发票接口。
一、JS-SDK初始化
首先,在调用微信API之前,我们需要对微信JS-SDK进行初始化配置,确保其能够正常工作。通过传入appId
、timestamp
、nonceStr
、signature
等参数,完成JS-SDK的基本配置。
import wx from 'weixin-js-sdk';
wx.config({
beta: true, // 开启 beta 版本的API支持
debug: false, // 关闭调试模式
appId, // 必填,公众号的唯一标识
timestamp, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature, // 必填,签名
jsApiList: [
'chooseInvoiceTitle' // 需要使用的API
]
});
二、调用发票接口
发票接口chooseInvoiceTitle
允许用户选择发票抬头,包括单位抬头或个人抬头。在调用接口时,scene
参数的值为1
,表示选择发票抬头。
export function wxChooseInvoice() {
return new Promise((resolve, reject) => {
wx.invoke('chooseInvoiceTitle', {
scene: 1 // 场景值,1表示选择发票抬头
}, function (res) {
if (res.err_msg === "chooseInvoiceTitle:ok") {
resolve(res);
} else {
reject(res);
}
});
});
}
三、处理发票信息
调用发票接口成功后,微信会返回用户选择的发票信息,通常以JSON格式返回。开发者可以从返回的结果中提取相关信息,例如发票抬头类型、公司税号、地址、电话、开户行等。
// 调用微信发票接口
wxChooseInvoice().then(res => {
const info = res.choose_invoice_title_info;
if (info) {
const {
type, title, taxNumber, companyAddress, telephone, bankName, bankAccount } = JSON.parse(info);
// 根据发票类型处理
if (type === 0) {
console.log('单位发票:', title, taxNumber, companyAddress, telephone, bankName, bankAccount);
} else if (type === 1) {
console.log('个人发票:', title);
}
}
}).catch(err => {
console.error('发票接口调用失败:', err);
});
四、代码解析
初始化微信JS-SDK:在使用微信的任何功能之前,必须对JS-SDK进行初始化,确保配置参数正确,
appId
、timestamp
、nonceStr
和signature
可以从服务端获取并传入前端。调用发票接口:通过
wx.invoke('chooseInvoiceTitle', {...})
方法调起微信发票选择功能,允许用户选择单位或个人发票。处理发票信息:成功获取发票信息后,返回的数据会包含用户选择的发票类型(单位或个人)、抬头名称、公司税号、公司地址、电话、银行信息等。开发者可以根据业务需求处理这些数据。
五、注意事项
场景值:在调用
chooseInvoiceTitle
接口时,scene
值为1
,表示选择发票抬头。发票信息格式:返回的发票信息是JSON格式,开发者需要通过
JSON.parse()
方法解析。JS-SDK版本:确保微信JS-SDK的版本支持发票功能,调用
beta: true
选项以开启beta API。错误处理:如果发票接口调用失败,需通过
catch
处理错误信息,并进行相应提示或重试机制。