Mixin 是一个安全、免费、快速、加强隐私的去中心化支付网络,现已支持 13 条主链(BTC/ETH/EOS/DASH/XRP/XEM/SC/DOGE/BCH/LTC/ZEC/ETC/ZEN)超过 5.9 万种代币充值、提现和转账。
通过 Mixin Messenger 扫码登录 https://developers.mixin.one (点右上角)。
点 Create New App 按提示创建就行,通过这个 App 创建的用户都是你的用户,后续可以监听你创建用户的充值、提现和转账信息,并且可以获得提现手续费返还。
点 Click to generate a new session 生成 PIN、Session Id 、Pin Token、Private Key,这些都要记下来后面要用,服务器和浏览器都不会保存这些敏感信息(注意刷新再次点又会生成一个新的,会覆盖旧的)。
参考文档 https://developers.mixin.one/api/alpha-mixin-network/app-user/ 和 https://developers.mixin.one/api/alpha-mixin-network/authentication-token/ ,会用到前面所说的 Session Id。
绝大部分 API 访问都需要在请求的 Header 里设置授权的 Token ,创建用户也需要,相关文档: https://developers.mixin.one/api/alpha-mixin-network/authentication-token/
Authentication Token 出错可能存在的几种情况:
6 位数字 PIN 码是用户转移资产的唯一途径,丢失无法找回,可以理解为自己在 BTC/ETH 链上资产私钥同等作用。强烈建议不要替用户保管 PIN 码,除非特殊用途并且有能力保管好。相关 API : https://developers.mixin.one/api/alpha-mixin-network/create-pin/ 和 https://developers.mixin.one/api/alpha-mixin-network/encrypted-pin/
为了帮助用户安全记住自己的 6 位数字 PIN 码,Mixin Messenger 做了如下提醒:
注意事项:
调用 API 提示 PIN 不对一般就几种情况:
关于安全的指纹支付方案 iOS 可以搜索 Secure Enclave 、Android 搜索 isInsideSecureHardware ,也可以直接使用 Mixin Messenger 的源码来实现。
相关 API:https://developers.mixin.one/api/alpha-mixin-network/read-assets/ 和 https://developers.mixin.one/api/alpha-mixin-network/read-asset/
https://developers.mixin.one/api/alpha-mixin-network/read-assets/ 会返回充值地址,如果没有返回进入资产详情界面继续调用 https://developers.mixin.one/api/alpha-mixin-network/read-asset/ 来刷新获取充值地址。
相关 API https://developers.mixin.one/api/alpha-mixin-network/transfer/ ,注意 trace_id 非常重要,可以有效的防止重复支付。
Mixin Messenger 会在进入转账界面时生成一个 trace id ,这样后续支付出现网络问题重试的时候就不会重复支付
有的团队会使用 snapshot_id 来做随机数,这是一个 UUID ,转账成功才会生成,Mixin Network 能确保唯一性
/snapshots 可能查看自己的转账记录,参考 API : https://developers.mixin.one/api/alpha-mixin-network/network-snapshots/ ,但是不支持 order 参数(注意不是 /network/snapshots ,没有 network 就只返回自己的转账记录,有的话就是全网转账记录)
注意提现需要先添加提现地址(收币地址),并且每次修改、删除地址都需要 PIN。内部充值提现(Mixin Network 的 Dapps 之间充值提现)是免费秒到的,例如从 Mixin Messenger 充值提现到 OceanONE、从 FOX.ONE 充值提现到 Mixin Messenger。
如果需要监听所有你 App 创建用户发生的充值、提醒和转账记录,你需要不断的扫描整个 Mixin Network ,是你的用户就会返回 user_id 字段,相关 https://developers.mixin.one/api/alpha-mixin-network/network-snapshots/
可以参考一下 OceanONE 的代码 https://github.com/MixinNetwork/ocean.one/blob/master/exchange.go 里的 PollMixinNetwork
给主账号充值需要通过 Mixin Messenger 来完成,先将资产充值到开发者账号(扫描登录 developers.mixin.one 的这个账号),然后在 Mixin Messenger 里搜索主账号的 App Id,进入会话再完成转账操作(可以先小额转账测试一下)。注意只能给开发者自己的主账号转账,你会发现点别人开发的小程序都没有转账这一项。