0.2.2 • Published 3 years ago

cbwsdk v0.2.2

Weekly downloads
-
License
-
Repository
-
Last release
3 years ago

cbwsdk

介绍

CBW 收银台使用 WalletConnect 协议连接第三方钱包进行快速安全支付。同时集成 CBW 钱包。

安装

Using npm:

$ npm install cbwsdk 

Using yarn:

$ yarn add cbwsdk 

示例

引入项目

import cbwsdk from 'cbwsdk'
import 'cbwsdk/lib/styles/iview.css'

Vue.use(cbwsdk)

API

方式一

使用 CBW 的默认界面,一般操作按照界面操作即可

import { CBWSDK } from 'cbwsdk'

// 初始化
this.sdk = new CBWSDK({
    // tenantKey 需要申请
    tenantKey: 'xxxx',
    // options
})
SDK options:
{
    tenantKey: '必填,由接入方申请',
    env: '可选,环境设置,默认为 "ropsten".  可选值为: mainnet(正式网), ropsten(测试环境)',
    infuraId: '可选, 用于统计访问数',
    chain: '可选, 默认为 ETH, 其它有 ETH,TRX,BSC 等'
    bridge: 'url',
    secure: true,   默认为 true,  使用 https 协议和 wss 协议,false 为使用 http 和 ws 协议
}
// 打开界面
this.CBWButton.open(this.sdk)

// 隐藏右下角按钮
this.CBWButton.hide()
/**
* 申请转账
* 
* @param orderId 用于使用 sdk 方对账的订单id, 不要重复使用
* @param symbol 转账币种,如: USDT
* @param address 一般为商户收款地址: 如果为 null,则默认为商户的收款地址
* @param amount 金额
*/
this.CBWButton.transfer(orderId, symbol, address, amount)

方式二

自定义界面,只使用 API 方式

// 初始化
this.sdk = new CBWSDK({
  tenantKey: 'xxx'
})

用户登录

const sdk = this.sdk
// account 为用户手机号或者邮箱
sdk.setAccount(account)

// 发送验证码
sdk.sendVcode().then(res => {
  if (res.code === 0) {
    console.log('发送验证码成功.')
  }
}).catch(err => {
  console.log('catch: ', err)
})

// 登录, vcode 为接受到的验证码
sdk.login(vcode).then(res => {
  console.log('login: ', res)
  console.log('login status: ', sdk.getAccount().logged)
})

连接钱包

// 选择连接 CBW 还是 第三方钱包
const isCBW = true
this.sdk.connect(isCBW)

// 如果选择连接第三方钱包,就到第三方钱包中去授权
// 如果选择 cbw,授权如下
this.sdk.wallet.approveConnect()

发起转账

/**
* 申请转账
* 
* @param orderId 针对接入 sdk 的商家,用于对账的订单id, 不要重复使用
* @param symbol 转账币种,如: USDT
* @param address 一般为商户收款地址
* @param amount 金额
*/
let result = this.sdk.transfer(orderId, symbol, address, amount)
if (result instanceof Error) {
  console.log('转账失败: ', result.message)
} else {
  result.then(res => {
    console.log('转账成功: ', res)
  })
}

授权转账

// 如果是连接第三方钱包,则去钱包中操作同意转账

// 如果是连接的 CBW,则授权操作如下
/**
* 
* @param orderId 对账的订单id, 为发起转账时的 orderId
*/
this.sdk.wallet.approveRequest(orderId)