国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP如何使用比特幣Coinbase錢包庫(kù)開發(fā)應(yīng)用

eccozhou / 734人閱讀

摘要:比特幣開發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)去中心化共識(shí)機(jī)制密鑰與腳本交易與等,同時(shí)也詳細(xì)講解如何在代碼中集成比特幣支持功能,例如創(chuàng)建地址管理錢包構(gòu)造裸交易等,是工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。

這是Coinbase Wallet API v2的官方客戶端庫(kù)。我們提供直觀,穩(wěn)定的界面,將Coinbase Wallet集成到的PHP項(xiàng)目中。

重要提示:由于此庫(kù)是針對(duì)較新的API v2的,因此需要v2權(quán)限(即wallet:accounts:read)。如果你仍在使用v1,請(qǐng)使用此庫(kù)的舊版本。

安裝

使用Composer安裝庫(kù)。如果你不熟悉Composer或依賴管理器,請(qǐng)閱讀Composer文檔。

"require": {
    "coinbase/coinbase": "~2.0"
}
認(rèn)證 API密鑰

使用API??密鑰和密鑰訪問你自己的Coinbase帳戶。

use CoinbaseWalletClient;
use CoinbaseWalletConfiguration;

$configuration = Configuration::apiKey($apiKey, $apiSecret);
$client = Client::create($configuration);
OAuth2

使用OAuth2身份驗(yàn)證訪問你自己以外的用戶帳戶。此庫(kù)不處理握手過程,并假定你在初始化時(shí)具有訪問token。你可以使用OAuth2客戶端(例如league/oauth2-client)處理握手過程。

use CoinbaseWalletClient;
use CoinbaseWalletConfiguration;

// with a refresh token
$configuration = Configuration::oauth($accessToken, $refreshToken);

// without a refresh token
$configuration = Configuration::oauth($accessToken);

$client = Client::create($configuration);
雙因素身份驗(yàn)證

發(fā)送資金端點(diǎn)在某些情況下需要2FA令牌(在此處閱讀更多內(nèi)容)。如果需要,則拋出特定異常。

use CoinbaseWalletEnumParam;
use CoinbaseWalletExceptionTwoFactorRequiredException;
use CoinbaseWalletResourceTransaction;

$transaction = Transaction::send([
    "toEmail" => "test@test.com",
    "bitcoinAmount" => 1
]);

$account = $client->getPrimaryAccount();
try {
    $client->createAccountTransaction($account, $transaction);
} catch (TwoFactorRequiredException $e) {
    // show 2FA dialog to user and collect 2FA token

    // retry call with token
    $client->createAccountTransaction($account, $transaction, [
        Param::TWO_FACTOR_TOKEN => "123456",
    ]);
}
分頁(yè)

幾個(gè)端點(diǎn)是分頁(yè)的。默認(rèn)情況下,庫(kù)只會(huì)獲取給定請(qǐng)求的第一頁(yè)數(shù)據(jù)。你可以輕松加載不僅僅是第一頁(yè)結(jié)果。

$transactions = $client->getAccountTransactions($account);
while ($transactions->hasNextPage()) {
    $client->loadNextTransactions($transactions);
}

你還可以使用fetch_all參數(shù)讓庫(kù)發(fā)出加載完整集合的所有必要請(qǐng)求。

use CoinbaseWalletEnumParam;

$transactions = $client->getAccountTransactions($account, [
    Param::FETCH_ALL => true,
]);
 警告

注意警告是明智的。如果配置了一個(gè)標(biāo)準(zhǔn)PSR-3記錄器,庫(kù)將記錄所有警告。

use CoinbaseWalletClient;
use CoinbaseWalletConfiguration;

$configuration = Configuration::apiKey($apiKey, $apiSecret);
$configuration->setLogger($logger);
$client = Client::create($configuration);
資源引用

在某些情況下,API將返回資源引用來代替擴(kuò)展的資源對(duì)象。可以通過刷新來擴(kuò)展這些引用。

$deposit = $this->client->getAccountDeposit($account, $depositId);
$transaction = $deposit->getTransaction();
if (!$transaction->isExpanded()) {
    $this->client->refreshTransaction($transaction);
}

你還可以使用expand參數(shù)請(qǐng)求API在初始請(qǐng)求中返回?cái)U(kuò)展資源。

use CoinbaseWalletEnumParam;

$deposit = $this->client->getAccountDeposit($account, $depositId, [
    Param::EXPAND = ["transaction"],
]);

創(chuàng)建新資源時(shí)可以使用資源引用,從而避免從API請(qǐng)求資源的開銷。

use CoinbaseWalletResourceDeposit;
use CoinbaseWalletResourcePaymentMethod;

$deposit = new Deposit([
    "paymentMethod" => PaymentMethod::reference($paymentMethodId)
]);

// or use the convenience method
$deposit = new Deposit([
    "paymentMethodId" => $paymentMethodId
]);
響應(yīng)

有多種方法可以訪問原始響應(yīng)數(shù)據(jù)。首先,每個(gè)資源對(duì)象都有一個(gè)getRawData()方法,你可以使用該方法訪問未映射到對(duì)象屬性的任何字段。

$data = $deposit->getRawData();

來自最后一個(gè)HTTP響應(yīng)的原始數(shù)據(jù)也可在客戶端對(duì)象上使用。

$data = $client->decodeLastResponse();
活動(dòng)記錄方法

該庫(kù)包括對(duì)資源對(duì)象上的活動(dòng)記錄方法的支持。你必須在引導(dǎo)應(yīng)用程序時(shí)啟用此功能。

$client->enableActiveRecord();

啟用后,你可以在資源對(duì)象上調(diào)用活動(dòng)記錄方法。

use CoinbaseWalletEnumParam;

$transactions = $account->getTransactions([
    Param::FETCH_ALL => true,
]);
用法

這并不是為了提供API的完整文檔。有關(guān)更多詳細(xì)信息,請(qǐng)參閱官方文檔。

市場(chǎng)數(shù)據(jù)

列出支持的本地貨幣

$currencies = $client->getCurrencies();

列出匯率

$rates = $client->getExchangeRates();

買入價(jià)

$buyPrice = $client->getBuyPrice("BTC-USD");

賣出價(jià)

$sellPrice = $client->getSellPrice("BTC-USD");

現(xiàn)貨價(jià)格

$spotPrice = $client->getSpotPrice("BTC-USD");

當(dāng)前服務(wù)器時(shí)間

$time = $client->getTime();
用戶

獲取授權(quán)信息

$auth = $client->getCurrentAuthorization();

查找用戶信息

$auth = $client->getCurrentAuthorization();

獲取當(dāng)前用戶

$user = $client->getCurrentUser();

更新當(dāng)前用戶

$user->setName("New Name");
$client->updateCurrentUser($user);
帳號(hào)

列出所有帳戶

$accounts = $client->getAccounts();

列出帳戶詳細(xì)信息

$account = $client->getAccount($accountId);

列出主要帳戶詳細(xì)信息

$account = $client->getPrimaryAccount();

將帳戶設(shè)為主要帳戶

$client->setPrimaryAccount($account);

創(chuàng)建一個(gè)新的比特幣賬戶

use CoinbaseWalletResourceAccount;

$account = new Account([
    "name" => "New Account"
]);
$client->createAccount($account);

更新帳戶

$account->setName("New Account Name");
$client->updateAccount($account):

刪除帳戶

$client->deleteAccount($account);
地址

列出帳戶的接收地址

$addresses = $client->getAccountAddresses($account);

獲取接收地址信息

$address = $client->getAccountAddress($account, $addressId);

列出地址的交易

$transactions = $client->getAddressTransactions($address);

創(chuàng)建一個(gè)新的接收地址

use CoinbaseWalletResourceAddress;

$address = new Address([
    "name" => "New Address"
]);
$client->createAccountAddress($account, $address);
交易

列出交易清單

$transactions = $client->getAccountTransactions($account);

獲取交易信息

$transaction = $client->getAccountTransaction($account, $transactionId);

發(fā)送資金

use CoinbaseWalletEnumCurrencyCode;
use CoinbaseWalletResourceTransaction;
use CoinbaseWalletValueMoney;

$transaction = Transaction::send([
    "toBitcoinAddress" => "ADDRESS",
    "amount"           => new Money(5, CurrencyCode::USD),
    "description"      => "Your first bitcoin!",
    "fee"              => "0.0001" // only required for transactions under BTC0.0001
]);

try { $client->createAccountTransaction($account, $transaction); }
catch(Exception $e) {
     echo $e->getMessage(); 
}

將資金轉(zhuǎn)入新帳戶

use CoinbaseWalletResourceTransaction;
use CoinbaseWalletResourceAccount;

$fromAccount = Account::reference($accountId);

$toAccount = new Account([
    "name" => "New Account"
]);
$client->createAccount($toAccount);

$transaction = Transaction::transfer([
    "to"            => $toAccount,
    "bitcoinAmount" => 1,
    "description"   => "Your first bitcoin!"
]);

$client->createAccountTransaction($fromAccount, $transaction);

申請(qǐng)資金

use CoinbaseWalletEnumCurrencyCode;
use CoinbaseWalletResourceTransaction;
use CoinbaseWalletValueMoney;

$transaction = Transaction::request([
    "amount"      => new Money(8, CurrencyCode::USD),
    "description" => "Burrito"
]);

$client->createAccountTransaction($transaction);

重新發(fā)送請(qǐng)求

$account->resendTransaction($transaction);

取消請(qǐng)求

$account->cancelTransaction($transaction);

完成請(qǐng)求

$account->completeTransaction($transaction);
買入

列出購(gòu)買清單

$buys = $client->getAccountBuys($account);

獲取購(gòu)買信息

$buy = $client->getAccountBuy($account, $buyId);

買入比特幣

use CoinbaseWalletResourceBuy;

$buy = new Buy([
    "bitcoinAmount" => 1
]);

$client->createAccountBuy($account, $buy);

購(gòu)買確認(rèn)

如果在創(chuàng)建購(gòu)買時(shí)傳遞commit=false,則只需執(zhí)行此操作。

use CoinbaseWalletEnumParam;

$client->createAccountBuy($account, $buy, [Param::COMMIT => false]);
$client->commitBuy($buy);
賣出

出售清單

$sells = $client->getAccountSells($account);

獲取銷售信息

$sell = $client->getAccountSell($account, $sellId);

賣比特幣

use CoinbaseWalletResourceSell;

$sell = new Sell([
    "bitcoinAmount" => 1
]);

$client->createAccountSell($account, $sell);

出售確認(rèn)

如果在創(chuàng)建sell時(shí)傳遞commit=false,則只需執(zhí)行此操作。

use CoinbaseWalletEnumParam;

$client->createAccountSell($account, $sell, [Param::COMMIT => false]);
$client->commitSell($sell);
存款

列出存款清單

$deposits = $client->getAccountDeposits($account);

獲取存款信息

$deposit = $client->getAccountDeposit($account, $depositId);

存款

use CoinbaseWalletEnumCurrencyCode;
use CoinbaseWalletResourceDeposit;
use CoinbaseWalletValueMoney;

$deposit = new Deposit([
    "amount" => new Money(10, CurrencyCode::USD)
]);

$client->createAccountDeposit($account, $deposit);

提交押金

如果在創(chuàng)建存款時(shí)傳遞commit=false,則只需執(zhí)行此操作。

use CoinbaseWalletEnumParam;

$client->createAccountDeposit($account, $deposit, [Param::COMMIT => false]);
$client->commitDeposit($deposit);
取款

列出提款單

$withdrawals = $client->getAccountWithdrawals($account);

取消

$withdrawal = $client->getAccountWithdrawal($account, $withdrawalId);

提款

use CoinbaseWalletEnumCurrencyCode;
use CoinbaseWalletResourceWithdrawal;
use CoinbaseWalletValueMoney;

$withdrawal = new Withdrawal([
    "amount" => new Money(10, CurrencyCode::USD)
]);

$client->createAccountWithdrawal($account, $withdrawal);

提交退出

如果在調(diào)用提款方法時(shí)傳遞commit=true,則只需執(zhí)行此操作。

use CoinbaseWalletEnumParam;

$client->createAccountWithdrawal($account, $withdrawal, [Param::COMMIT => false]);
$client->commitWithdrawal($withdrawal);
支付方式

列出付款方式

$paymentMethods = $client->getPaymentMethods();

獲取付款方式

$paymentMethod = $client->getPaymentMethod($paymentMethodId);
商家

獲得商家

$merchant = $client->getMerchant($merchantId);
訂單

列出訂單

$orders = $client->getOrders();

獲得訂單

$order = $client->getOrder($orderId);

創(chuàng)建訂單

use CoinbaseWalletResourceOrder;
use CoinbaseWalletValueMoney;

$order = new Order([
    "name" => "Order #1234",
    "amount" => Money::btc(1)
]);

$client->createOrder($order);

退款訂單

use CoinbaseWalletEnumCurrencyCode;

$client->refundOrder($order, CurrencyCode::BTC);
結(jié)賬

列出結(jié)帳單

$checkouts = $client->getCheckouts();

創(chuàng)建結(jié)帳單

use CoinbaseWalletResourceCheckout;

$params = array(
    "name"               => "My Order",
    "amount"             => new Money(100, "USD"),
    "metadata"           => array( "order_id" => $custom_order_id )
);

$checkout = new Checkout($params);
$client->createCheckout($checkout);
$code = $checkout->getEmbedCode();
$redirect_url = "https://www.coinbase.com/checkouts/$code";

結(jié)帳

$checkout = $client->getCheckout($checkoutId);

獲取結(jié)帳的訂單

$orders = $client->getCheckoutOrders($checkout);

創(chuàng)建結(jié)帳訂單

$order = $client->createNewCheckoutOrder($checkout);
通知webhook和驗(yàn)證
$raw_body = file_get_contents("php://input");
$signature = $_SERVER["HTTP_CB_SIGNATURE"];
$authenticity = $client->verifyCallback($raw_body, $signature); // boolean
貢獻(xiàn)和測(cè)試

測(cè)試套件使用PHPUnit構(gòu)建。通過運(yùn)行phpunit命令運(yùn)行單元測(cè)試套件。

phpunit

還有一組集成測(cè)試,它們向API發(fā)出實(shí)際請(qǐng)求并檢查生成的對(duì)象。要運(yùn)行這些測(cè)試,必須將phpunit.xml.dist復(fù)制到phpunit.xml,為CB_API_KEYCB_API_SECRET變量提供值,并在運(yùn)行測(cè)試套件時(shí)指定integration組。

phpunit --group integration

建議你瀏覽我的各種編程語(yǔ)言的區(qū)塊鏈教程和區(qū)塊鏈技術(shù)博客,深入了解區(qū)塊鏈,比特幣,加密貨幣,以太坊,和智能合約。

php比特幣開發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)、去中心化共識(shí)機(jī)制、密鑰與腳本、交易與UTXO等,同時(shí)也詳細(xì)講解如何在Php代碼中集成比特幣支持功能,例如創(chuàng)建地址、管理錢包、構(gòu)造裸交易等,是Php工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。

php以太坊,主要是介紹使用php進(jìn)行智能合約開發(fā)交互,進(jìn)行賬號(hào)創(chuàng)建、交易、轉(zhuǎn)賬、代幣開發(fā)以及過濾器和交易等內(nèi)容。

這里是原文

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/24341.html

相關(guān)文章

  • PHP如何使用比特Coinbase錢包庫(kù)開發(fā)應(yīng)用

    摘要:比特幣開發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)去中心化共識(shí)機(jī)制密鑰與腳本交易與等,同時(shí)也詳細(xì)講解如何在代碼中集成比特幣支持功能,例如創(chuàng)建地址管理錢包構(gòu)造裸交易等,是工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。 這是Coinbase Wallet API v2的官方客戶端庫(kù)。我們提供直觀,穩(wěn)定的界面,將Coinbase Wallet集成到的PHP項(xiàng)目中。 重要提示:...

    Kosmos 評(píng)論0 收藏0
  • 如何開發(fā)比特錢包應(yīng)用程序

    摘要:創(chuàng)建比特幣錢包需要一組優(yōu)秀的程序員。如何使用流行的庫(kù)構(gòu)建自己的比特幣錢包應(yīng)用程序創(chuàng)建比特幣錢包應(yīng)用程序的一種方法是依賴現(xiàn)有工具。具有以下功能它允許開發(fā)人員使用密碼加密創(chuàng)建比特幣錢包應(yīng)用程序。 盡管目前加密貨幣市場(chǎng)相當(dāng)黯淡,但比特幣和其他山寨幣繼續(xù)受歡迎。每天都有新的交易者加入市場(chǎng),希望能夠在下一個(gè)價(jià)格高漲時(shí)獲利。 隨著市場(chǎng)的突飛猛進(jìn),開發(fā)商也在獲益。新交易者的首要任務(wù)是設(shè)置比特幣錢包。...

    Cympros 評(píng)論0 收藏0
  • 如何開發(fā)比特錢包應(yīng)用程序

    摘要:創(chuàng)建比特幣錢包需要一組優(yōu)秀的程序員。如何使用流行的庫(kù)構(gòu)建自己的比特幣錢包應(yīng)用程序創(chuàng)建比特幣錢包應(yīng)用程序的一種方法是依賴現(xiàn)有工具。具有以下功能它允許開發(fā)人員使用密碼加密創(chuàng)建比特幣錢包應(yīng)用程序。 盡管目前加密貨幣市場(chǎng)相當(dāng)黯淡,但比特幣和其他山寨幣繼續(xù)受歡迎。每天都有新的交易者加入市場(chǎng),希望能夠在下一個(gè)價(jià)格高漲時(shí)獲利。 隨著市場(chǎng)的突飛猛進(jìn),開發(fā)商也在獲益。新交易者的首要任務(wù)是設(shè)置比特幣錢包。...

    crossea 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<