|
導(dǎo)讀網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立... 網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語(yǔ)言之所以稱(chēng)為超文本標(biāo)記語(yǔ)言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。 本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于PHP如何使用比特幣Coinbase錢(qián)包庫(kù)開(kāi)發(fā)應(yīng)用(詳細(xì)步驟),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。這是Coinbase Wallet API v2的官方客戶端庫(kù)。我們提供直觀,穩(wěn)定的界面,將Coinbase Wallet集成到的PHP項(xiàng)目中。 重要提示:由于此庫(kù)是針對(duì)較新的API v2的,因此需要v2權(quán)限(即 安裝使用Composer安裝庫(kù)。如果你不熟悉Composer或依賴管理器,請(qǐng)閱讀Composer文檔。 "require": {
"coinbase/coinbase": "~2.0"
}認(rèn)證API密鑰使用API密鑰和密鑰訪問(wèn)你自己的Coinbase帳戶。 use Coinbase\Wallet\Client; use Coinbase\Wallet\Configuration; $configuration = Configuration::apiKey($apiKey, $apiSecret); $client = Client::create($configuration); OAuth2使用OAuth2身份驗(yàn)證訪問(wèn)你自己以外的用戶帳戶。此庫(kù)不處理握手過(guò)程,并假定你在初始化時(shí)具有訪問(wèn)token。你可以使用OAuth2客戶端(例如league/oauth2-client)處理握手過(guò)程。 use Coinbase\Wallet\Client; use Coinbase\Wallet\Configuration; // 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 Coinbase\Wallet\Enum\Param;
use Coinbase\Wallet\Exception\TwoFactorRequiredException;
use Coinbase\Wallet\Resource\Transaction;
$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);
}你還可以使用 use Coinbase\Wallet\Enum\Param;
$transactions = $client->getAccountTransactions($account, [
Param::FETCH_ALL => true,
]);警告注意警告是明智的。如果配置了一個(gè)標(biāo)準(zhǔn)PSR-3記錄器,庫(kù)將記錄所有警告。 use Coinbase\Wallet\Client; use Coinbase\Wallet\Configuration; $configuration = Configuration::apiKey($apiKey, $apiSecret); $configuration->setLogger($logger); $client = Client::create($configuration); 資源引用在某些情況下,API將返回資源引用來(lái)代替擴(kuò)展的資源對(duì)象?梢酝ㄟ^(guò)刷新來(lái)擴(kuò)展這些引用。 $deposit = $this->client->getAccountDeposit($account, $depositId);
$transaction = $deposit->getTransaction();
if (!$transaction->isExpanded()) {
$this->client->refreshTransaction($transaction);
}你還可以使用 use Coinbase\Wallet\Enum\Param;
$deposit = $this->client->getAccountDeposit($account, $depositId, [
Param::EXPAND = ['transaction'],
]);創(chuàng)建新資源時(shí)可以使用資源引用,從而避免從API請(qǐng)求資源的開(kāi)銷(xiāo)。 use Coinbase\Wallet\Resource\Deposit;
use Coinbase\Wallet\Resource\PaymentMethod;
$deposit = new Deposit([
'paymentMethod' => PaymentMethod::reference($paymentMethodId)
]);
// or use the convenience method
$deposit = new Deposit([
'paymentMethodId' => $paymentMethodId
]);響應(yīng)有多種方法可以訪問(wèn)原始響應(yīng)數(shù)據(jù)。首先,每個(gè)資源對(duì)象都有一個(gè) $data = $deposit->getRawData(); 來(lái)自最后一個(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 Coinbase\Wallet\Enum\Param;
$transactions = $account->getTransactions([
Param::FETCH_ALL => true,
]);用法這并不是為了提供API的完整文檔。有關(guān)更多詳細(xì)信息,請(qǐng)參閱官方文檔。 市場(chǎng)數(shù)據(jù)列出支持的本地貨幣 $currencies = $client->getCurrencies(); 列出匯率 $rates = $client->getExchangeRates(); 買(mǎi)入價(jià) $buyPrice = $client->getBuyPrice('BTC-USD');賣(mài)出價(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 Coinbase\Wallet\Resource\Account;
$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 Coinbase\Wallet\Resource\Address;
$address = new Address([
'name' => 'New Address'
]);
$client->createAccountAddress($account, $address);交易列出交易清單 $transactions = $client->getAccountTransactions($account); 獲取交易信息 $transaction = $client->getAccountTransaction($account, $transactionId); 發(fā)送資金 use Coinbase\Wallet\Enum\CurrencyCode;
use Coinbase\Wallet\Resource\Transaction;
use Coinbase\Wallet\Value\Money;
$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 Coinbase\Wallet\Resource\Transaction;
use Coinbase\Wallet\Resource\Account;
$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 Coinbase\Wallet\Enum\CurrencyCode;
use Coinbase\Wallet\Resource\Transaction;
use Coinbase\Wallet\Value\Money;
$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); 買(mǎi)入列出購(gòu)買(mǎi)清單 $buys = $client->getAccountBuys($account); 獲取購(gòu)買(mǎi)信息 $buy = $client->getAccountBuy($account, $buyId); 買(mǎi)入比特幣 use Coinbase\Wallet\Resource\Buy;
$buy = new Buy([
'bitcoinAmount' => 1
]);
$client->createAccountBuy($account, $buy);購(gòu)買(mǎi)確認(rèn) 如果在創(chuàng)建購(gòu)買(mǎi)時(shí)傳遞 use Coinbase\Wallet\Enum\Param; $client->createAccountBuy($account, $buy, [Param::COMMIT => false]); $client->commitBuy($buy); 賣(mài)出出售清單 $sells = $client->getAccountSells($account); 獲取銷(xiāo)售信息 $sell = $client->getAccountSell($account, $sellId); 賣(mài)比特幣 use Coinbase\Wallet\Resource\Sell;
$sell = new Sell([
'bitcoinAmount' => 1
]);
$client->createAccountSell($account, $sell);出售確認(rèn) 如果在創(chuàng)建sell時(shí)傳遞 use Coinbase\Wallet\Enum\Param; $client->createAccountSell($account, $sell, [Param::COMMIT => false]); $client->commitSell($sell); 存款列出存款清單 $deposits = $client->getAccountDeposits($account); 獲取存款信息 $deposit = $client->getAccountDeposit($account, $depositId); 存款 use Coinbase\Wallet\Enum\CurrencyCode;
use Coinbase\Wallet\Resource\Deposit;
use Coinbase\Wallet\Value\Money;
$deposit = new Deposit([
'amount' => new Money(10, CurrencyCode::USD)
]);
$client->createAccountDeposit($account, $deposit);提交押金 如果在創(chuàng)建存款時(shí)傳遞 use Coinbase\Wallet\Enum\Param; $client->createAccountDeposit($account, $deposit, [Param::COMMIT => false]); $client->commitDeposit($deposit); 取款列出提款單 $withdrawals = $client->getAccountWithdrawals($account); 取消 $withdrawal = $client->getAccountWithdrawal($account, $withdrawalId); 提款 use Coinbase\Wallet\Enum\CurrencyCode;
use Coinbase\Wallet\Resource\Withdrawal;
use Coinbase\Wallet\Value\Money;
$withdrawal = new Withdrawal([
'amount' => new Money(10, CurrencyCode::USD)
]);
$client->createAccountWithdrawal($account, $withdrawal);提交退出 如果在調(diào)用提款方法時(shí)傳遞 use Coinbase\Wallet\Enum\Param; $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 Coinbase\Wallet\Resource\Order;
use Coinbase\Wallet\Value\Money;
$order = new Order([
'name' => 'Order #1234',
'amount' => Money::btc(1)
]);
$client->createOrder($order);退款訂單 use Coinbase\Wallet\Enum\CurrencyCode; $client->refundOrder($order, CurrencyCode::BTC); 結(jié)賬列出結(jié)帳單 $checkouts = $client->getCheckouts(); 創(chuàng)建結(jié)帳單 use Coinbase\Wallet\Resource\Checkout;
$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)建。通過(guò)運(yùn)行 phpunit 還有一組集成測(cè)試,它們向API發(fā)出實(shí)際請(qǐng)求并檢查生成的對(duì)象。要運(yùn)行這些測(cè)試,必須將 phpunit --group integration 以上就是PHP如何使用比特幣Coinbase錢(qián)包庫(kù)開(kāi)發(fā)應(yīng)用(詳細(xì)步驟)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!