首页 > PHP 比特币教程第三课: 创建一个比特币钱包,查比特币余额,发送比特币

比特币钱包与php建立连接,PHP 比特币教程第三课: 创建一个比特币钱包,查比特币余额,发送比特币

互联网 2021-03-05 12:45:19

我们已经创建过一个回复消息的机器人和一个能自动支付比特币的机器人.

通过本教程的学习,你可以学到如下内容如何创建一个比特币钱包.如何读取比特币钱包的余额.如何支付比特币并即时确认.如何将 Mixin Network 的比特币提现到你的冷钱包或第三方交易所.通过 Mixin Network PHP SDK 创建一个比特币钱包

前期准备:你要有一个 Mixin Network 账户。如果没有账户,一行代码就能创建一个

$user_info = $mixinSdk->Network()->createUser("Tom cat");

上面的语句会在本地创建一个 RSA 密钥对,然后调用 Mixin Network 来创建帐号,最后输出帐号信息.

//Create User api include all account informationprint_r($user_info);print($user_info["pubKey"]);$newConfig = array();$newConfig["private_key"] = $user_info["priKey"];$newConfig["pin_token"] = $user_info["pin_token"];$newConfig["session_id"]= $user_info["session_id"];$newConfig["client_id"] = $user_info["user_id"];

帐号创建成功后结果如下:

Array([type] => user[user_id] => de06f952-6ec7-3789-8467-9aa79869a6ef[identity_number] => 0[full_name] => Tom cat[avatar_url] =>[relationship] =>[mute_until] => 0001-01-01T00:00:00Z[created_at] => 2019-02-20T12:29:29.86008273Z[is_verified] =>[session_id] => bc9293e5-ed9a-48da-99f9-915f561a1c60[phone] =>[pin_token] => TIPyCtRTTYOg2sr+lu0z2D3xS8SOtQAy0ZDnacRrn6u2ytutZinzeEpRTD9N1+DS/T1zJ8VoX4ED19nhF5SApjqjUaRjKI5lga4rQGcePjCvM0D89FdpmKJzNMLjzV2DglKFMPbnJTu1btfILc0XWiSNEiiFr2mHuLI7bYuQzWI=[invitation_code] =>[code_id] =>[code_url] => https://mixin.one/codes/[has_pin] =>[receive_message_source] => EVERYBODY[accept_conversation_source] => EVERYBODY[priKey] => -----BEGIN PRIVATE KEY-----MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALh0dSy2GcKek/Jp4lTMZxJ30AWP+inZ4c+FG+3ch3fenmXysCyM56hgvVZwh4RrRpvVjRt/NNE3k2WgN9LNZqWXCmo4ae/hJjpwuj/EVR/1/HSebF9hcvMoTre8D0iLlk+rf1tgr/ZHmIoa8ef45xMBDargfsF4b5k7kUavU9/xAgMBAAECgYB1ShBMOwsMVxvKdIvn0gXkl20ebFvtis9szr5gtO8rSNK+DuD5oyuXRNSAh5OUn0ZJxzQv/OZP9x/x6jw0/kk7Aj6cjjN3beC7UoayDYms4yNFoWNPqZEXkQ0b2tRsF3mdNj6LVm6Gq7FPDD1TYJ4GR4eOcWHCkZWym26HbZ30AQJBAPNFeZ7nd9wQIzu0wN9isrZebnCko3yax64MDsUAsrmPB1wdHkdX0tJpCldighYD10Cyi+nSz3ODmmbPbLu8AjECQQDCGyi0lpCoV+skLVR04weU99Msz1neqOw1khQCJLzUW8UdDhsVwfCdzCeuZrCz+gl/aZaJ6d+6rNTMp1hLionBAkBEs34hTiUfVL9egTFm5KyrrAdscFJrQhraIDWblRLkLGxbqy194GN9YIS3IO6z4OnNL58rrYlAig30sud2LSZBAkEAjuNXT7kWvBYcbwE/jtwhlLPqrK3nRlWrrLPgLsPEjb8Ql5busVGXQ1IqU+QcaCDEJRshSlzz6YOZEx6NjO5rAQJAejvW3DmTRjUSDJD8hGr9eCpKQTBDXyUEvyLIMCuRmm9Cbz0HRl4aVXOVblVWoJ6YsGvbCkSlLQCrPL2T58JTkg==-----END PRIVATE KEY-----[pubKey] => -----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4dHUsthnCnpPyaeJUzGcSd9AFj/op2eHPhRvt3Id33p5l8rAsjOeoYL1WcIeEa0ab1Y0bfzTRN5NloDfSzWallwpqOGnv4SY6cLo/xFUf9fx0nmxfYXLzKE63vA9Ii5ZPq39bYK/2R5iKGvHn+OcTAQ2q4H7BeG+ZO5FGr1Pf8QIDAQAB-----END PUBLIC KEY-----)

现在你需要小心保管好你的帐号信息,在读取该账户的比特币资产余额或者进行其他操作时,将需要用到这些信息.

给新建的帐号创建一个比特币钱包

新账号并不默认内置比特币钱包, 现在读一下比特币余额就可以创建一个比特币钱包。

$asset_infoNew = $mixinSdkNew->Wallet()->readAsset("c6d0c728-2624-429b-8e0d-d9d19b6592fa");echo "BitCoin wallet address is :".$asset_infoNew["public_key"];

创建的帐号的比特币资产详细信息如下,其中 public key 就是比特币的存币地址:

Array([type] => asset[asset_id] => c6d0c728-2624-429b-8e0d-d9d19b6592fa[chain_id] => c6d0c728-2624-429b-8e0d-d9d19b6592fa[symbol] => BTC[name] => Bitcoin[icon_url] => https://images.mixin.one/HvYGJsV5TGeZ-X9Ek3FEQohQZ3fE9LBEBGcOcn4c4BNHovP4fW4YB97Dg5LcXoQ1hUjMEgjbl1DPlKg1TW7kK6XP=s128[balance] => 0[public_key] => 195p8R8Y15uzDGMrdVkELVUW2444psqiSq[account_name] =>[account_tag] =>[price_btc] => 1[price_usd] => 3928.11498197[change_btc] => 0[change_usd] => -0.006841408545228452[asset_key] => c6d0c728-2624-429b-8e0d-d9d19b6592fa[confirmations] => 12[capitalization] => 0)

这个 API 能够提供若干与比特币有关的信息:

存币地址:[public_key]Logo: [icon_url]资产名字:[name]资产在 Mixin Network 的 uuid: [asset_key]对美元的价格(Coinmarketcap.com 提供): [price_usd]存币时确认的区块数量:[confirmations]比特币私钥呢?

比特币的私钥呢?这个私钥被 Mixin Network 通过多重签名保护,所以对用户来说是不可见的,比特币资产的提现和转账都需要用户提供正确的的 RSA 签名,PIN 代码与会话密钥才能完成.

不只是比特币,还有以太坊,EOS 等

这个帐号不只支持比特币,还支持以太坊,EOS 等, 完整的区块链支持列表. 这个账户同时也支持所有的 ERC20 代币与 EOS 代币.

创建其它的币的钱包与创建比特币钱包过程一样,读对应的资产余额就可以.

EOS 的存币地址与其它的币有些不同,它由两部分组成:account_name and account tag, 如果你向 Mixin Network 存入 EOS,你需要填两项数据:account name 是eoswithmixin,备注里输入你的 account_tag,比如0aa2b00fad2c69059ca1b50de2b45569.

EOS 的资产余额返回结果如下:

Array([type] => asset[asset_id] => 6cfe566e-4aad-470b-8c9a-2fd35b49c68d[chain_id] => 6cfe566e-4aad-470b-8c9a-2fd35b49c68d[symbol] => EOS[name] => EOS[icon_url] => https://images.mixin.one/a5dtG-IAg2IO0Zm4HxqJoQjfz-5nf1HWZ0teCyOnReMd3pmB8oEdSAXWvFHt2AJkJj5YgfyceTACjGmXnI-VyRo=s128[balance] => 0[public_key] =>[account_name] => eoswithmixin[account_tag] => 0aa2b00fad2c69059ca1b50de2b45569[price_btc] => 0.00097367[price_usd] => 3.87734515[change_btc] => 0.05950956117519646[change_usd] => 0.07238079041492786[asset_key] => eosio.token:EOS[confirmations] => 64[capitalization] => 0)存入比特币与读取比特币余额

现在,你可以向比特币的钱包存币了。

当然,在比特币网络里转币,手续费是相当贵的,费用的中位数在 0.001BTC,按当前 4000 美元的价格,在 4 美元左右,有一个方便的办法,如果你有Mixin Messenger帐号,里面并且有比特币的话,可以直接提现比特币到新创建的帐号的比特币充值地址,它们在同一个 Mixin Network 网络内,手续费为 0,而且 1 秒到账。

下面的代码,可以读取比特币钱包余额.

$btc = $mixinSdkNew->Wallet()->readAsset("c6d0c728-2624-429b-8e0d-d9d19b6592fa");print_r($btc);Mixin Network 网内免手续费的,并且即时确认

任何币在 Mixin Network 内部的交易,都是无手续费的,并且立刻到账。前期准备: 账户设置了 PIN

对于新创建的帐号,我们通过 updatePin 来设置新 PIN 码, 代码如下:

//Create a PIN.$pinInfo = $mixinSdkNew->Pin()->updatePin('',PIN);print_r($pinInfo);Mixin Network 帐号之间的比特币支付

通过 Mixin Messenger,我们可以先转比特币给机器人,然后让机器人转币给新用户。

$mixinSdk = new MixinSDK(require './config.php');//$user_info["user_id"] generated by create user;$trans_info = $mixinSdk->Wallet()->transfer(BTC_ASSET_ID,$user_info["user_id"], $mixinSdk->getConfig()['default']['pin'],AMOUNT);print_r($trans_info);

读取 Bitcoin 的余额,来确认比特币是不是转成功了! 注意**$mixinSdkNew**是新用户的。

$btc = $mixinSdkNew->Wallet()->readAsset(BTC_ASSET_ID);print_r($btc);如何将比特币存入你的冷钱包或者第三方交易所

如果你希望将币存入你的冷钱包或者第三方交易所, 先要得到冷钱包或者你在第三方交易所的钱包地址,然后将钱包地址提交到 Mixin Network.

要点提示: 提现是需要支付收续费的,准备好比特币包地址!增加目的钱包地址到 Mixin Network

调用 createAddress API, 将会返回一个 address_id,下一步的提现操作会用到这个 id。

$btcInfo = $mixinSdkNew->Wallet()->createAddress("c6d0c728-2624-429b-8e0d-d9d19b6592fa","14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C",$mixinSdkNew->getConfig()['default']['pin'],"BTC withdral",false);

这里的 14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C 就是一个比特币钱包地址, 如下所示,提现费用是 0.0025738 BTC, address_id 是"345855b5-56a5-4f3b-ba9e-d99601ef86c1".

Array([type] => address[address_id] => 345855b5-56a5-4f3b-ba9e-d99601ef86c1[asset_id] => c6d0c728-2624-429b-8e0d-d9d19b6592fa[public_key] => 14T129GTbXXPGXXvZzVaNLRFPeHXD1C25C[label] => BTC withdral[account_name] =>[account_tag] =>[fee] => 0.0025738[reserve] => 0[dust] => 0.0001[updated_at] => 2019-02-20T01:47:56.44067294Z)创建提现地址成功后,你可以用 readAddress 读取最新的提现费。$wdInfo = $mixinSdkNew->Wallet()->readAddress($btcInfo["address_id"]);提交提现请求,Mixin Network 会即时处理提现请求.

提交提现请求到 Mixin Network, $btcInfo["address_id"]就是 createAddress 创建的。

$wdInfo = $mixinSdkNew->Wallet()->withdrawal($btcInfo["address_id"],"0.01",$mixinSdkBot->getConfig()['default']['pin'],"BTC withdral");可以通过 blockchain explore 来查看进度.

完整的代码在这儿

免责声明:非本网注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。