uni-app 微信和支付宝票夹发票读取功能实现

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app 微信和支付宝票夹发票读取功能实现

写一个通用的uniapp插件,用于读取微信票夹或者支付宝中票夹中的发票信息,这个功能应该不是很复杂,但是很有用

3 回复

识别吗?


不是识别,是将微信和支付宝票夹中的发票数据拉取过来

在实现uni-app中微信和支付宝票夹发票读取功能时,我们通常需要利用微信小程序和支付宝小程序的API来实现。由于uni-app支持跨平台开发,你可以通过条件编译分别处理微信小程序和支付宝小程序的逻辑。

微信小程序发票读取

微信小程序提供了wx.getWeRunData接口用于获取微信卡包中的发票列表,但请注意,这个接口目前主要用于获取微信运动数据,并不直接支持发票读取。不过,我们可以结合微信发票助手功能,通过用户手动选择发票来实现。这里提供一个模拟用户选择发票后的处理逻辑:

// #ifdef MP-WEIXIN
// 假设用户已经通过某种方式(如按钮点击)选择了发票
wx.chooseInvoice({
  count: 1, // 最多可以选择的发票数量
  type: 'invoice', // 可以指定为invoice(普通发票)或receipt(电子收据)
  success(res) {
    const invoiceList = res.invoiceList;
    if (invoiceList.length > 0) {
      const invoice = invoiceList[0];
      console.log('Selected Invoice:', invoice);
      // 处理选中的发票信息
    } else {
      console.log('No invoice selected');
    }
  },
  fail(err) {
    console.error('Failed to choose invoice:', err);
  }
});
// #endif

支付宝小程序发票读取

支付宝小程序提供了my.trade.invoiceQuery接口来查询用户卡包中的发票。以下是一个示例代码:

// #ifdef MP-ALIPAY
// 假设我们要查询用户卡包中的所有发票
my.trade.invoiceQuery({
  success(res) {
    const invoiceList = res.result.invoice_list;
    if (invoiceList && invoiceList.length > 0) {
      invoiceList.forEach(invoice => {
        console.log('Invoice:', invoice);
        // 处理每张发票的信息
      });
    } else {
      console.log('No invoices found in user\'s card package');
    }
  },
  fail(err) {
    console.error('Failed to query invoices:', err);
  }
});
// #endif

总结

上述代码分别展示了如何在uni-app中实现微信和支付宝小程序中的发票读取功能。需要注意的是,由于API的限制和变化,实际开发中可能需要参考最新的官方文档进行调整。此外,由于发票信息的敏感性和隐私保护,确保在开发过程中遵循相关法律法规,获得用户授权后再进行数据处理。

回到顶部