SimpleWallet协议接入

使用SimpleWallet跳转MYKEY代码示例

特别注意: Android端SimpleWallet跳转MYKEY时请使用如下代码(设置MYKEY的包名)
1
try {
2
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
3
intent.setPackage("com.mykey.id");
4
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
5
context.startActivity(intent);
6
} catch (Exception e) {
7
e.printStackTrace();
8
}
Copied!

登录和支付

MYKEY遵循SimpleWallet协议实现,详细请见以下文档:
除了支持SimpleWallet规范的登录支付,MYKEY还额外增强支持了合约签名的调用。
特别注意: MYKEY的账号体系与其他的EOS账号有所差异,需要在服务端验签时使用Reserved公钥进行验签。

移动端App调用合约时序图

请传递给MYKEY如下的数据,数据格式为json:
1
// 合约调用数据格式
2
{
3
protocol string // 协议名,本协议默认 SimpleWallet
4
version string // 协议版本信息,如1.0
5
action string // 操作类型,为 transaction
6
dappName string // DApp应用名
7
dappIcon string // DApp应用图标
8
desc string // MYKEY显示给用户合约调用语义描述
9
callback string // MYKEY回调DApp的深度链接,e.g. custom://custom.com/contract
10
notifyUrl string // 合约调用成功通知DAppServer的回调URL接口
11
actions [ //合约操作数组,包含转账与非转账合约操作
12
{ //非转账
13
account string // 合约名
14
name string // 合约方法
15
info string // MYKEY显示给用户的语义化描述
16
data object // 根据合约abi定义所传的参数对象 e.g. {key1: value1, key2: value2 }
17
},
18
{ //转账
19
account string // 合约名
20
name string // 合约方法
21
info string // MYKEY显示给用户的语义化描述
22
TransferDataRequest {
23
from string // 转账From
24
to string // 转账To
25
quantity string // 转账金额和单位,e.g. "1.0000 EOS"
26
memo string // 链上备注
27
}
28
}
29
]
30
expired number // 仅Web二维码模式可用,过期时间,unix时间戳
31
}
Copied!

签名

请传递给MYKEY如下的数据,数据格式为json:
1
// 签名调用数据格式
2
{
3
protocol string // 协议名,本协议默认 SimpleWallet
4
version string // 协议版本信息,如1.0
5
action string // 操作类型,为 sign
6
dappName string // DApp应用名
7
dappIcon string // DApp应用图标
8
desc string // MYKEY显示给用户签名调用语义描述
9
message string // 需要签名的内容
10
callback string // MYKEY回调DApp的深度链接,e.g. custom://custom.com/contract
11
notifyUrl string // 签名成功通知DAppServer的回调URL接口
12
expired number // 仅Web二维码模式可用,过期时间,unix时间戳
13
}
Copied!
Last modified 11mo ago