@chargebee/chargebee-js-vue-wrapper

中文文档
0.3.3发布于 2025/10/09MITESM + CJS零依赖近 30 天下载 4.2万

Vue Clapper for Courgebee.js 组件

中文使用文档
文档目录10 节
  1. 实例
  2. 现场直播
  3. 安装
  4. 使用量
  5. 基本用途
  6. 一个更为复杂的例子是:
  7. 3DS 授权
  8. 组件和API
  9. 参考:
  10. 支助

排气管 JS Vue Wrapper

充电器组件的 Vue 包装器

实例

详细例子: 点击这里

现场直播

查看实况演示 这里

安装

从 npm 安装 :

npm install @chargebee/chargebee-js-vue-wrapper

使用量

充电蜂组件需要您以 site 财务报告和审定财务报表 publishableKey

想知道在哪里获得您的 API 密钥吗 ? 参考这里

在你身边 index.html数字 :

<html>
    <head>
      ...
      <script src="https://js.chargebee.com/v2/chargebee.js"></script>
      <script>
        Chargebee.init({
          site: 'your-site'
          publishableKey: 'your-publishable-key'
        })
      </script>
    </head>
    <body>
      <div id="app"></div>
    </body>
</html>

基本用途

在您的 vue 组件

<template>
  <div>
    <div class="cell example example3" id="example-3" style="padding: 1em">
      <form>
        ...
        <card-component ref="cardComponent" />
        <button type="submit" id="tokenize" v-on:click="onSubmit">Submit</button>
        ...
      </form>
    </div>
  </div>
</template>

<script>
import {CardComponent} from '@chargebee/chargebee-js-vue-wrapper';

export default {
  name: 'app',
  components: {
    'card-component': CardComponent,
  },

  methods: {
    onSubmit (e) {
      e.preventDefault()
      this.$refs.cardComponent.tokenize().then(data => {
        console.log('chargebee token', data.token)
      })
    }
  }
}

</script>

一个更为复杂的例子是:

注意: 如果 vue 版本为 3.2 或 更小, 请在您的 Vue 应用程序靴子上添加以下一行 app.config.unwrapInjectedRef = true 参考文件

<template>
  <div>
    <div class="example-3" id="example-3" >
      <form>
          <card-component class="fieldset" ref="cardComponent" 
            :fonts="fonts" 
            :styles="styles" 
            :locale="locale" 
            :classes="classes" 
            @ready="onReady"
            @change="onChange"
          >
            <card-number class="field empty" @focus="onFocus"  :placeholder="'4111 1111 1111 1111'" />
            <card-expiry class="field empty" @focus="onFocus"  :placeholder="'MM / YY'" />
            <card-cvv class="field empty" @focus="onFocus" :placeholder="'CVV'" />
          </card-component>
          <button type="submit" v-on:click="onSubmit">Submit</button>
          <div id="errors">{{errorMessage}}</div>
      </form>
    </div>
  </div>
</template>

<script>
import {CardComponent, CardNumber, CardExpiry, CardCvv} from '@chargebee/chargebee-js-vue-wrapper';

export default {
  name: 'app',
  components: {
    'card-component': CardComponent,
    'card-number': CardNumber,
    'card-expiry': CardExpiry,
    'card-cvv': CardCvv,
  },

  data () {
    return {
      styles: {
        base: {
          color: '#fff',
          fontWeight: 600,
          fontFamily: 'Quicksand, Open Sans, Segoe UI, sans-serif',
          fontSize: '16px',
          fontSmoothing: 'antialiased',

          ':focus': {
            color: '#424770'
          },

          '::placeholder': {
            color: '#9BACC8'
          },

          ':focus::placeholder': {
            color: '#CFD7DF'
          }
        },
        invalid: {
          color: '#fff',
          ':focus': {
            color: '#FA755A'
          },
          '::placeholder': {
            color: '#FFCCA5'
          }
        }
      },
      locale: 'en',
      classes: {
        focus: 'focus',
        complete: 'complete',
        invalid: 'invalid',
        empty: 'empty'
      },
      fonts: [
        {
          src: 'https://mysite.com/assets/my-font.woff',
          fontStyle: 'italic',
          fontFamily: 'Myfont',
          fontWeight: '500'
        },
        'https://fonts.googleapis.com/css?family=Lato'
      ],
      errors: {},
      errorMessage: ''
    }
  },

  methods: {
    onSubmit (e) {
      e.preventDefault()
      this.$refs.cardComponent.tokenize().then(data => {
        console.log('chargebee token', data.token)
      })
    },
    onChange (status) {
      let errors = {
        ...this.errors,
        [status.field]: status.error
      }
      this.errors = errors
      let {message} = Object.values(errors).filter(message => !!message).pop() || {}
      this.errorMessage = message
    },
    onFocus (event) {
      console.log(event.field, 'focused')
    },
    onReady (el) {
      el.focus()
    }
  }
}
</script>

3DS 授权

在您的 vue 组件

<template>
  <div>
    <div class="cell example example3" id="example-3" style="padding: 1em">
      <form>
        ...
        <card-component ref="cardComponent" />
        <button type="submit" id="authorize" v-on:click="onSubmit">Submit</button>
        ...
      </form>
    </div>
  </div>
</template>

<script>
import {CardComponent} from '@chargebee/chargebee-js-vue-wrapper';

export default {
  name: 'app',
  components: {
    'card-component': CardComponent,
  },

  mounted: function() {
    this.createPaymentIntent().then(intent => {
      this.paymentIntent = intent;
    });
  },

  data: function() {
    return {
      paymentIntent: null,
      additionalData: {
        // Additional params to improve chances of frictionless flow
      }
    }
  },

  methods: {
    createPaymentIntent() {
      // Make ajax call to server to create a paymentIntent
    },
    onSubmit (e) {
      e.preventDefault()
      this.$refs.cardComponent.authorizeWith3ds(this.paymentIntent, this.additionalData)
        .then(authorizedIntent => {
          console.log('Success', authorizedIntent.id)
        }).catch(error => {
          consoel.error('Error', error)
        })
    }
  }
}

</script>

组件和API

卡片组件文档(中文(简体) )

道具说明数据类型
class容器元素的 CSS 类别名称字符串
fonts字体面或链接的阵列字体
classes用于替换各种 CSS 类名的集 事件类
locale语言代码语言
styles样式定制集样式
placeholder卡片字段的一组占位符占位符
ref用于卡片组件的 Vue 引用( ref)Vue 参考
活动文档(中文(简体) )
道具说明参数
@ready组件挂起并准备好时触发器外地
@change每个州变化的触发器战地状态
@focus当组件被聚焦时触发战地状态
@blur组件模糊时触发战地状态

外地构成部分(文档(中文(简体) )

  • 卡片号码
  • 纸质打印
  • 纸牌CVV
道具说明数据类型
class容器元素的 CSS 类名字符串
styles二元字段样式样式
placeholder字段的占位符字符串
活动支持( E)文档(中文(简体) )
道具说明参数
@ready组件挂起并准备好时触发器外地
@change每个州变化的触发器战地状态
@focus当组件被聚焦时触发战地状态
@blur组件模糊时触发战地状态

参考:

充气管组件-联署文件

支助

是否有人询问执行情况? 联系 支持@ forcebee.com

版本与发布记录

@chargebee/chargebee-js-vue-wrapper 共发布 16 个版本,首次发布于 2019/04/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.3.3latest2025/10/091.1 年前
0.3.22023/08/093 年前
0.3.12023/01/113 年前
0.3.02022/07/084 年前
0.2.22021/03/235 年前
0.2.12020/09/166 年前

关于 @chargebee/chargebee-js-vue-wrapper 的常见问题

@chargebee/chargebee-js-vue-wrapper 是什么?

Vue Clapper for Courgebee.js 组件

如何安装 @chargebee/chargebee-js-vue-wrapper?

在项目目录运行 npm install @chargebee/chargebee-js-vue-wrapper,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:vue(^3.3.4)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@chargebee/chargebee-js-vue-wrapper 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/chargebee__chargebee-js-vue-wrapper 是否存在。

@chargebee/chargebee-js-vue-wrapper 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@chargebee/chargebee-js-vue-wrapper 可以商用吗?

@chargebee/chargebee-js-vue-wrapper 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@chargebee/chargebee-js-vue-wrapper 的下载量有多少?

根据 npm 官方下载统计,@chargebee/chargebee-js-vue-wrapper 在 2026/10/10 – 2026/11/08 这 30 天内被下载 42,108 次,日均约 1,404 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chargebee/chargebee-js-vue-wrapper 还在维护吗?

最新版本 0.3.3 发布于 2025/10/09(1.1 年前);至今共发布 16 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/04/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。