开发者此案例工作流程

具体如何调用DSLink SDK,请点击此处

1. 准备工作,配置并根据需求修改开发包中扫码登录部分,获取用户授权(此案例用于验证用户是否有足够存款保障)。

在开发包中搜索requestAccount()函数,给dataJson JSon字符串加上下面两行代码,要求必须银行卡号经过银行审核。

    dataJson = dataJson + "\",\"info\":";                           //如果不需要用户授权信息,则info和下面的参数不需要
    dataJson = dataJson + "{\"cardNumber\":\"1\"}";    //0不必经过审核,1必须经过审核
            

dataJson完整格式:

    {
        "netWork": "",    // 哪种区块链  ethereum, bitcoin
        "appId": "",      // 应用名称
        "topic": "",      // DSLink  MQTT的主题
        "info": {"transactionNumber":"1"}
        //需要返回的用户信息,如果不需要用户的信息则info项不放到二维码中。0不必经过审核,1必须经过审核
    }
            

2. 此案例在小张扫码登陆后,根据返回信息判断小张有认筹资格。

3. 数字资产平台确定后把私募信息对小张开放。

4. 小张通过扫码交易把10个DS币给了工厂老板,返回区块链交易码给数字资产平台。数字资产平台把交易码存储到自己数据库。

5. 数字资产平台把该工厂的1个权证(1%的股权)给与小张,对应去掉工厂老板1个权证,并开始办理后续股份合同事宜。

登录及交易二维码的生成

生成登录二维码:

调用开发包的requestAccount()函数

    const  connectResponse = connect.requestAccount().then(response => {
		//返回结果(具体请看接收返回信息),可以在这里写后续代码		
	}, error => {
		console.err;
		alert(error.toString());
	});
                                

2. 小张用DSLink APP扫码登录数字资产平台,返回授权信息,数字资产平台根据信息判断小张是否有资格参与认筹。

返回授权信息格式:

    {
        "address": "",// 用户区块链地址,用于交易及商家从区块链上验证信息
        "type": "login",// 代表着是扫码登录
        //下面是已授权给商家的个人信息
        "transactionNumber":{"value":"","checkResult":"","transactionCode":"","dataEncode":""}
        //value:信息,checkResult:0未审核/1已审核/2审核中,transactionCode:该信息在区块链的交易码(用于验证信息是否真实),dataEncode:区块链上交易信息的加密方式
    }

            

生成交易二维码,用户扫码后返回区块链交易码:

调用开发包的sendTransactionOptional()函数

    const  connectResponse = connect. sendTransactionOptional (fromAddress, toAddress, value, gasPrice, gasLimit, data, nonce).then(response => {
        //交易成功后返回交易码,可以在这里写后续代码		
        }, error => {
        console.err;
        alert(error.toString());
    });

                                

区块链交易需要开发者了解一下参数具体的含义:

    fromAddress // 手机扫码者,扫码登录后获取
    toAddress	// 交易给谁
    value 	    // 交易金额要乘以1000000000000000000
    gasPrice 	// 交易发送者愿意支付的gas费用的价格,从开发包获取:
                //let  web3 = connect.getWeb3();
                //gasPrice = web3.eth.gasPrice.toString(10);
    gasLimit 	// 该交易的执行时使用gas的上限,一般为21000
    data 	    // 交易备注信息
    nonce 	    // 交易次数从开发包获取或自定义指定,指定次数小于实际区块链中交//易次数则交易失败。开发报获取:
                //let  web3 = connect.getWeb3();
                // nonce = web3.eth.getTransactionCount(fromAddress);
                                

DSLink工作示意图

调用开发包的步骤