UNPKG

bcvwallet-jssdk

Version:
145 lines (122 loc) 7.21 kB
## 使用币威 JS-SDK 通过使用币威 JS-SDK,网页开发者可借助币威APP使用支付、分享等能力,未来还将开放更多如扫一扫、获取地理位置、图像、音视频等功能。 此文档面向网页开发者介绍币威 JS-SDK 如何使用及相关注意事项。 ### 使用流程 1. 开通开发权限,绑定域名 如开放平台首页接入流程中介绍,先联系币威团队开通开发权限,并配置 “JS接口安全域名”,开发者只能在其对应 JS 接口安全域名的网页中使用 JS-SDK 的相关功能。 2. 下载并引入 JS-SDK 文件 可使用 `npm` 安装,或直接在 Github 上下载 `dist/bcvwallet.min.js` 到自己项目中 ``` npm install bcvwallet ``` 在需要调用JS接口的页面中引入 JS-SDK 文件,引入方法如下: - 如果使用了 AMD/CMD 规范,可在 module 内使用 require() 引入模块: ``` javascript var bcvWallet = require('bcvwallet'); ``` - 直接引用,引入后会在全局注册一个`bcvWallet`对象: ``` javascript <script type="text/javascript" src="path/to/bcvwallet.min.js"></script> ``` 3. 通过 config 接口注入权限验证配置 所有需要使用 JS-SDK 的页面必须先注入配置信息,否则将无法调用 注意:同一个 url 仅需调用一次,对于变化 url 的 SPA 应用也同样仅需调用一次即可。目前 Android 客户端中如果重复调用会抛出异常。 ```javascript bcvWallet.config({ debug: false, // 开启调试模式时会在网页底部生成一系列log记录 appId: '', // 必填,第三方的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名 jsApiList: [] // 非必填,目前可传入空数组,后续会加入权限判断校验 }); ``` [签名算法](../README.md)见币威开放平台首页中后端签名机制 4. 通过ready接口处理成功验证 ```javascript bcvWallet.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 }); ``` 5. 通过error接口处理失败验证 ```javascript bcvWallet.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息在返回的res参数中查看,具体参数格式见下文-接口调用说明。 }); ``` ### 接口调用说明 所有接口通过 bcvWallet 对象来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数: 1. success:接口调用成功时执行的回调函数。 2. fail:接口调用失败时执行的回调函数。 3. complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。 4. cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。 以上几个函数都带有一个参数,类型为对象,有三个通用属性 errcode、errmsg、data,其值格式如下: - 调用成功时:errcode: 0, errmsg: 'success', data为具体接口返回的数据 - 用户取消时:errcode: -1, errmsg: 'cancel', data 为空(如有具体取消原因,会在 'cancel' 后面加具体取消信息。如安卓没有弹窗权限导致调用不起支付,会返回如下格式 cancel: permissions compatibility) - 调用失败时:errcode: 1或具体状态码(为大于等于1的正整数), errmsg: 其值为具体错误信息, data 为空 ### 币威支付接口 requestPayment 可以通过币威支付接口调起 币威APP 的客户端支付功能,用户输入密码,即可完成支付操作。目前支持多种 Token 做为支付币种。 ```javascript bcvWallet.requestPayment({ accessToken: '', // 必填,应用授权接口调用凭证 tradeNo: '', // 必填,开放平台订唯一单号 requestTime: '', // 请求时间 success: function (res) { // 支付成功后的回调函数 } }); ``` 其中支付相关的凭证、单号信息等需要通过后端调用币威开放平台生成,具体详见:币威支付[开发文档](../doc/pay.md) ### 分享接口 shareWechat 集成了分享到微信聊天,微信朋友圈,复制分享内容的功能,目前分享有如下几种形式,通过 type 字段控制: 1. link:网页链接形式,分享时包含分享到微信聊天,微信朋友圈和复制按钮,用户可以选择复制分享的内容 2. screenshot:截图分享,APP 将截取整个当前网页为图片进行分享,分享时包含分享到微信聊天,微信朋友圈和下载按钮,用户可以选择将图片下载下来 3. image:分享图片,分享时包含分享到微信聊天,微信朋友圈和下载按钮,用户可以选择将图片下载下来 分享 link 的示例如下: ```javascript bcvWallet.shareWechat({ type: 'link', title: '', // 非必填,分享标题(如果没有,自动调用网页title) thumb: '', // 非必填,分享缩略图 desc: '', // 非必填,分享描述 url: '', // 非必填,分享链接(如果没有,默认使用当前网页链接) textCopy: '', // 非必填,可以复制的文案,用户可以点击按钮复制该文案 success: function (res) { // 分享成功(包括复制成功)后的回调函数 } }); ``` 分享 screenshot 的示例如下: ```javascript bcvWallet.shareWechat({ type: 'screenshot', success: function (res) { // 分享成功(包括下载成功)后的回调函数 } }); ``` 分享 image 的示例如下: ```javascript bcvWallet.shareWechat({ type: 'image', imageUrl: '', // 必填,分享图片的链接 success: function (res) { // 分享成功(包括下载成功)后的回调函数 } }); ``` ### 下载接口 download 提供下载功能,目前仅支持下载图片。 ```javascript bcvWallet.download({ type: 'img', // 必填,下载的类型,目前仅支持 'img' 图片形式 url: '', // 必填,图片链接 success: function (res) { // 下载成功后的回调函数 } }); ``` **备注** - 调用 config 进行配置是一个客户端的异步操作,时间长短会受到网络环境的影响,如果 config 接口还未返回ready 或 error 回调就调用其他接口,该接口会调用失败,在 Android 手机上可能会导致整个配置过程失效,因此建议开发者设置一个变量管理 config 配置的状态,在 config 调用成功之前,不允许用户直接触发其他接口的调用。(此问题将在下一个版本更新中修复) - 分享接口:上文介绍的分享接口功能为币威钱包简体中文版本功能,在币威钱包海外版本(繁体版、英文版)中,会根据当地用户的使用习惯替换为分享到 Line、分享到 Facebook 等功能,但是SDK 调用的方法及参数不变。 *未来还将开放更多功能,敬请期待*