1.1.7 • Published 4 years ago
dappbirds-js-sdk v1.1.7
该文档的目的是让开发者可以快速接入 dappbirds-js-sdk,主要包括以下内容:
- 相关环境介绍
- SDK 文件介绍及加载方式
- SDK 初始化
- SDK 关键方法描述
- 错误码列表及释义
- 资源下载
相关环境描述
DApp运行环境
- Chrome 浏览器 (插件形式支撑)
- 钱包客户端中的DApp浏览器 (iOS + Android)
Demo 测试地址
注意:体验线上或线下 Demo,需要切换到钱包对应的网络(TEST_NET, MAIN_NET)
SDK 文件介绍及加载方式
SDK文件:
index.min.js
index.html
Demo 页面
加载方式:
- 将
index.min.js
复制到项目中,通过 script 加载即可 - 或直接引入 DAppbirds 提供的 CDN URL加载
//dapp.cdn.static.mmzhuli.com/static/dappbirds-js-sdk/index.min.js?t=1568794420
- 或通过 npm 引入
npm install dappbirds-js-sdk
import { DappBirdsEngin } from 'dappbirds-js-sdk'
- 将
SDK 初始化
- 引入 SDK js 文件
参考以下代码进行接入
const enginConfig = { chain_type: 7, test_mode: false }; DappBirdsEngin.init(enginConfig).then((DappBirdsSDK) => { const config = { app_id: 1, contract_address: '', silent_login: 1, chain_sign_txt: '', invite_code: '' }; const dappBirdsInstance = DappBirdsSDK.init(config); // TODO }).catch((ex) => { console.error(ex); });
enginConfig 参数:
参数名 描述 是否必填 约束 chain_type 公链类型 是 EOS:2,NEO:5,本体:7,BOS:9,IOST:10,维基:12,EOSC:14,ThunderCore:16,NULS:18 test_mode 是否测试环境 否 默认为:false,测试时可置为 true 上线前需将 test_mode 参数设置为 false, 或删除此参数,切记!
config 参数:
参数名 描述 是否必填 约束 app_id 应用app_id 是 由平台分配 contract_address 链上合约地址 是 由平台分配 silent_login 是否静默登录 否 静默登录, 设置1可以不验证签名登录 (须后台先配置参数) chain_sign_txt 签名字符串 否 链上签名时的字符串 invite_code 邀请码 否 邀请者的标识
SDK 关键方法描述
sign(config)
用户签名checkOpenId(openid)
检测openid是否有效getAddress()
用户钱包地址getOpenId()
用户唯一标识getBalance()
钱包账户余额方法(公链上余额)sendTransaction(config)
发送交易
sign
const config = { flag_chain: 0 };
// 游戏第一次打开调用
dappBirdsInstance.sign(config).then(signData => {
console.log(signData);
}).catch(ex => {
console.error(ex);
});
config 参数:
参数名 | 描述 | 是否必填 | 约束 |
---|---|---|---|
flag_chain | 是否开启链上签名 | 否 | 默认不开启, 1:开启链上签名 |
返回值 signData 描述
名称 | 描述 |
---|---|
openid | 用户 openid,需要将 openid 本地缓存,下次进入游戏需要用 checkOpenId(openid) 检测是否有效 |
_timestamp | unix时间戳 |
_signature | 签名串 |
checkOpenId
// 在有缓存 openid 的情况下调用,如果进入 catch,则说明 openid 无效(需要清空当前本地的登录标识,及页面展示的相关用户数据),然后按照签名需求重新调用 sign 方法
dappBirdsInstance.checkOpenId(openid).then(() => {
console.log('success');
}).catch(ex => {
console.error(ex);
});
getAddress
// 获取用户钱包地址
const address = dappBirdsInstance.getAddress();
getOpenId
// 获取用户唯一标识
const openid = dappBirdsInstance.getOpenId();
getBalance
// 获取用户钱包余额
dappBirdsInstance.getBalance().then(balance => {
console.log(balance);
}).catch(ex => {
console.error(ex);
});
sendTransaction
// 发送支付交易
const config = {
amount: 1,
order_no: '',
_timestamp: 12312,
_signature: ''
};
dappBirdsInstance.sendTransaction(config).then(data => {
// 交易结果
console.log(data);
}).catch(ex => {
console.error(ex);
});
config 参数:
参数名 | 描述 | 是否必填 | 约束 |
---|---|---|---|
amount | 交易金额 | 是 | 大于0 |
order_no | 订单号 | 是 | 每次提交不可重复,字母数字组合,长度不超过36位 |
_timestamp | 下单后返回的 _timestamp | 是 | 无 |
_signature | 下单后返回的 _signature | 是 | 无 |
返回值 data 描述:
名称 | 描述 |
---|---|
order_no | 订单号 |
txid | 交易流水号 |
SDK 错误码列表及释义
所有catch
的Error
对象示例:
{
code: '错误码',
msg: '错误描述信息',
desc: '详细描述信息或一些辅助查错信息'
}
错误码描述:
值 | 描述 |
---|---|
1 | 配置参数错误 |
2 | 接口请求出错 |
3 | 非自定义 throw 出错,逻辑异常 |
10001 | 钱包环境检测失败,未安装 |
10002 | 钱包环境初始化失败,未开锁 |
10003 | 用户没有授权 |
10004 | 用户取消操作,比如 sign 取消,sendTransaction 取消 |
10005 | 用户 openid 校验失败,请重新调用 sign 签名, 比如 sendTransaction 方法 |
10006 | 用户还没有创建钱包 |
10007 | 钱包地址还没有激活 |
10008 | 用户余额不足 |
资源下载
SDK下载
- dappbirds-js-sdk 1.1.6 下载
钱包下载
- EOS,BOS: https://get-scatter.com/?ref=DAppBirds
- TRON: https://tron.watch/projects?ref=DAppBirds
- ONT: http://showdoc.imakejoy.com/web/#/22?page_id=419
- IOST: http://showdoc.imakejoy.com/web/#/22?page_id=426
- WICC: http://showdoc.imakejoy.com/web/#/22?page_id=427
官方钱包下载
- DAppBirds: http://dappbirds.com