


So verwenden Sie die Wallet-Bibliothek Bitcoin Coinbase, um Anwendungen mit PHP zu entwickeln (detaillierte Schritte)
Der Inhalt dieses Artikels befasst sich mit der Verwendung der Bitcoin-Coinbase-Wallet-Bibliothek zur Entwicklung von Anwendungen in PHP (detaillierte Schritte). Ich hoffe, dass er für Sie hilfreich ist .
Dies ist die offizielle Client-Bibliothek für Coinbase Wallet API v2. Wir bieten eine intuitive und stabile Schnittstelle zur Integration von Coinbase Wallet in Ihr PHP-Projekt.
Wichtig: Da diese Bibliothek auf die neuere API v2 abzielt, sind v2-Berechtigungen erforderlich (d. h. wallet:accounts:read
). Wenn Sie noch v1 verwenden, verwenden Sie bitte eine ältere Version dieser Bibliothek.
Installieren
Verwenden Sie Composer, um die Bibliothek zu installieren. Wenn Sie mit Composer oder dem Abhängigkeitsmanager nicht vertraut sind, lesen Sie bitte die Composer-Dokumentation.
"require": { "coinbase/coinbase": "~2.0" }
Authentifizierung
API-Schlüssel
Verwenden Sie API-Schlüssel und Geheimnisse, um auf Ihr eigenes Coinbase-Konto zuzugreifen.
use Coinbase\Wallet\Client; use Coinbase\Wallet\Configuration; $configuration = Configuration::apiKey($apiKey, $apiSecret); $client = Client::create($configuration);
OAuth2
Verwenden Sie die OAuth2-Authentifizierung, um auf andere Benutzerkonten als Ihre eigenen zuzugreifen. Diese Bibliothek übernimmt den Handshake-Prozess nicht und geht davon aus, dass Sie zum Zeitpunkt der Initialisierung über das Zugriffstoken verfügen. Sie können einen OAuth2-Client (z. B. league/oauth2-client) verwenden, um den Handshake-Prozess abzuwickeln.
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);
Zwei-Faktor-Authentifizierung
Der Endpunkt „Geld senden“ erfordert in einigen Fällen ein 2FA-Token (mehr erfahren Sie hier). Löst bei Bedarf eine bestimmte Ausnahme aus.
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', ]); }
Paginierung
Mehrere Endpunkte sind paginiert. Standardmäßig ruft die Bibliothek nur die erste Datenseite für eine bestimmte Anfrage ab. Sie können problemlos mehr als nur die erste Ergebnisseite laden.
$transactions = $client->getAccountTransactions($account); while ($transactions->hasNextPage()) { $client->loadNextTransactions($transactions); }
Sie können auch den Parameter fetch_all
verwenden, damit die Bibliothek alle erforderlichen Anforderungen zum Laden der gesamten Sammlung stellt.
use Coinbase\Wallet\Enum\Param; $transactions = $client->getAccountTransactions($account, [ Param::FETCH_ALL => true, ]);
WARNUNG
Es ist ratsam, die Warnungen zu beachten. Wenn ein Standard-PSR-3-Logger konfiguriert ist, protokolliert die Bibliothek alle Warnungen.
use Coinbase\Wallet\Client; use Coinbase\Wallet\Configuration; $configuration = Configuration::apiKey($apiKey, $apiSecret); $configuration->setLogger($logger); $client = Client::create($configuration);
Ressourcenreferenz
In einigen Fällen gibt die API eine Ressourcenreferenz anstelle des erweiterten Ressourcenobjekts zurück. Diese Referenzen können durch Auffrischen erweitert werden.
$deposit = $this->client->getAccountDeposit($account, $depositId); $transaction = $deposit->getTransaction(); if (!$transaction->isExpanded()) { $this->client->refreshTransaction($transaction); }
Sie können auch die Parameteranforderungs-API expand
verwenden, um erweiterte Ressourcen in der ersten Anforderung zurückzugeben.
use Coinbase\Wallet\Enum\Param; $deposit = $this->client->getAccountDeposit($account, $depositId, [ Param::EXPAND = ['transaction'], ]);
Sie können beim Erstellen neuer Ressourcen Ressourcenreferenzen verwenden und so den Mehraufwand beim Anfordern von Ressourcen über die API vermeiden.
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 ]);
Antwort
Es gibt mehrere Möglichkeiten, auf die rohen Antwortdaten zuzugreifen. Erstens verfügt jedes Ressourcenobjekt über eine getRawData()
-Methode, mit der Sie auf alle Felder zugreifen können, die nicht Objekteigenschaften zugeordnet sind.
$data = $deposit->getRawData();
Die Rohdaten der letzten HTTP-Antwort sind auch auf dem Client-Objekt verfügbar.
$data = $client->decodeLastResponse();
Methoden zur Aktivitätsaufzeichnung
Diese Bibliothek bietet Unterstützung für die Aktivitätsaufzeichnungsmethode für Ressourcenobjekte. Sie müssen diese Funktion beim Booten der Anwendung aktivieren.
$client->enableActiveRecord();
Wenn diese Option aktiviert ist, können Sie aktive Aufzeichnungsmethoden für Ressourcenobjekte aufrufen.
use Coinbase\Wallet\Enum\Param; $transactions = $account->getTransactions([ Param::FETCH_ALL => true, ]);
Verwendung
Dies ist nicht als vollständige Dokumentation der API gedacht. Weitere Einzelheiten finden Sie in der offiziellen Dokumentation.
Marktdaten
Unterstützte lokale Währungen auflisten
$currencies = $client->getCurrencies();
Wechselkurse auflisten
$rates = $client->getExchangeRates();
Kaufpreis
$buyPrice = $client->getBuyPrice('BTC-USD');
Verkaufspreis
$sellPrice = $client->getSellPrice('BTC-USD');
Spotpreis
$spotPrice = $client->getSpotPrice('BTC-USD');
Aktuelle Serverzeit
$time = $client->getTime();
Benutzer
Autorisierungsinformationen abrufen
$auth = $client->getCurrentAuthorization();
Benutzerinformationen finden
$auth = $client->getCurrentAuthorization();
Abrufen Aktueller Benutzer
$user = $client->getCurrentUser();
Aktuellen Benutzer aktualisieren
$user->setName('New Name'); $client->updateCurrentUser($user);
Konten
Alle Konten auflisten
$accounts = $client->getAccounts();
Kontodetails auflisten
$account = $client->getAccount($accountId);
Primäre Kontodetails auflisten
$account = $client->getPrimaryAccount();
Konto zum primären Konto machen
$client->setPrimaryAccount($account);
Neues Bitcoin-Konto erstellen
use Coinbase\Wallet\Resource\Account; $account = new Account([ 'name' => 'New Account' ]); $client->createAccount($account);
Konto aktualisieren
$account->setName('New Account Name'); $client->updateAccount($account):
Konto löschen
$client->deleteAccount($account);
Adresse
Empfangsadresse des Kontos auflisten
$addresses = $client->getAccountAddresses($account);
Informationen zur Empfangsadresse abrufen
$address = $client->getAccountAddress($account, $addressId);
Transaktion der Adresse auflisten
$transactions = $client->getAddressTransactions($address);
Neue Empfangsadresse erstellen
use Coinbase\Wallet\Resource\Address; $address = new Address([ 'name' => 'New Address' ]); $client->createAccountAddress($account, $address);
Transaktion
Transaktionen auflisten
$transactions = $client->getAccountTransactions($account);
Transaktionsinformationen abrufen
$transaction = $client->getAccountTransaction($account, $transactionId);
Geld senden
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(); }
Geld auf neues Konto überweisen
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);
Geld anfordern
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);
Anfrage erneut senden
$account->resendTransaction($transaction);
Anfrage abbrechen
$account->cancelTransaction($transaction);
Anfrage abschließen
$account->completeTransaction($transaction);
Kaufen
Käufe auflisten
$buys = $client->getAccountBuys($account);
Kaufinformationen abrufen
$buy = $client->getAccountBuy($account, $buyId);
Bitcoin kaufen
use Coinbase\Wallet\Resource\Buy; $buy = new Buy([ 'bitcoinAmount' => 1 ]); $client->createAccountBuy($account, $buy);
Kaufbestätigung
Sie müssen dies nur tun, wenn Sie commit=false
beim Erstellen des Kaufs bestehen.
use Coinbase\Wallet\Enum\Param; $client->createAccountBuy($account, $buy, [Param::COMMIT => false]); $client->commitBuy($buy);
Verkaufen
Verkaufsliste
$sells = $client->getAccountSells($account);
Verkaufsinformationen abrufen
$sell = $client->getAccountSell($account, $sellId);
Bitcoin verkaufen
use Coinbase\Wallet\Resource\Sell; $sell = new Sell([ 'bitcoinAmount' => 1 ]); $client->createAccountSell($account, $sell);
Verkaufsbestätigung
Sie müssen dies nur tun, wenn Sie beim Erstellen des Verkaufs commit=false
übergeben.
use Coinbase\Wallet\Enum\Param; $client->createAccountSell($account, $sell, [Param::COMMIT => false]); $client->commitSell($sell);
Einzahlung
Einzahlungsliste auflisten
$deposits = $client->getAccountDeposits($account);
Einzahlungsinformationen abrufen
$deposit = $client->getAccountDeposit($account, $depositId);
Einzahlung
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);
Einzahlung übermitteln
Sie müssen dies nur tun, wenn Sie beim Erstellen der Einzahlung commit=false
übergeben.
use Coinbase\Wallet\Enum\Param; $client->createAccountDeposit($account, $deposit, [Param::COMMIT => false]); $client->commitDeposit($deposit);
Auszahlung
Auszahlungsauftrag auflisten
$withdrawals = $client->getAccountWithdrawals($account);
Stornieren
$withdrawal = $client->getAccountWithdrawal($account, $withdrawalId);
Auszahlung
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);
Senden zum Beenden
Sie Sie müssen dies nur tun, wenn Sie beim Aufruf der Auszahlungsmethode commit=true
übergeben.
use Coinbase\Wallet\Enum\Param; $client->createAccountWithdrawal($account, $withdrawal, [Param::COMMIT => false]); $client->commitWithdrawal($withdrawal);
Zahlungsmethoden
Zahlungsmethoden auflisten
$paymentMethods = $client->getPaymentMethods();
Zahlungsmethoden abrufen
$paymentMethod = $client->getPaymentMethod($paymentMethodId);
Händler
Händler abrufen
$merchant = $client->getMerchant($merchantId);
Bestellungen
Bestellungen auflisten
$orders = $client->getOrders();
Bestellungen erhalten
$order = $client->getOrder($orderId);
Bestellungen erstellen
use Coinbase\Wallet\Resource\Order; use Coinbase\Wallet\Value\Money; $order = new Order([ 'name' => 'Order #1234', 'amount' => Money::btc(1) ]); $client->createOrder($order);
Bestellungen erstatten
use Coinbase\Wallet\Enum\CurrencyCode; $client->refundOrder($order, CurrencyCode::BTC);
Zur Kasse gehen
Kaufliste auflisten
$checkouts = $client->getCheckouts();
Kasse erstellen
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";
Kasse
$checkout = $client->getCheckout($checkoutId);
Bestellungen zur Kasse erhalten
$orders = $client->getCheckoutOrders($checkout);
Kasse erstellen Kontobestellung
$order = $client->createNewCheckoutOrder($checkout);
通知webhook和验证
$raw_body = file_get_contents('php://input'); $signature = $_SERVER['HTTP_CB_SIGNATURE']; $authenticity = $client->verifyCallback($raw_body, $signature); // boolean
贡献和测试
测试套件使用PHPUnit构建。通过运行phpunit
命令运行单元测试套件。
phpunit
还有一组集成测试,它们向API发出实际请求并检查生成的对象。要运行这些测试,必须将phpunit.xml.dist
复制到phpunit.xml
,为CB_API_KEY
和CB_API_SECRET
变量提供值,并在运行测试套件时指定integration
组。
phpunit --group integration
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Wallet-Bibliothek Bitcoin Coinbase, um Anwendungen mit PHP zu entwickeln (detaillierte Schritte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Zu den am besten geeigneten Plattformen für Handelsmeme -Münzen gehören: 1. Binance, die weltweit größte, mit hoher Liquidität und niedrigem Handhabungsgebühren; 2. OKX, eine effiziente Handelsmotor, die eine Vielzahl von Meme -Münzen unterstützt; 3. Xbit, dezentralisiert und unterstützt den Handel mit dem Cross-Chain; 4. REDIM (Solana Dex), niedrige Kosten, kombiniert mit Serumbestellbuch; 5. Pancakeswap (BSC Dex), niedrige Transaktionsgebühren und schnelle Geschwindigkeit; 6. Orca (Solana Dex), Benutzererfahrungsoptimierung; 7. Coinbase, hohe Sicherheit, geeignet für Anfänger; 8. Huobi, bekannt in Asien, reiche Handelspaare; 9. Dexrabbit, intelligent

Zu den für Anfängern geeigneten Kryptowährungsdatenplattformen gehören CoinMarketCap und nicht-kleine Trompete. 1. CoinmarketCap bietet globale Rangliste für den Preis, den Marktwert und der Handelsvolumen für Anfänger für Anfänger und Grundanalyse. 2. Das nichtklammernde Angebot bietet eine chinesisch-freundliche Schnittstelle, die chinesischen Benutzern geeignet ist, um potenzielle Projekte mit geringem Risiko schnell zu untersuchen.

Die Rangliste der „ältesten“ virtuellen Währungen lautet wie folgt: 1. Bitcoin (BTC), der am 3. Januar 2009 herausgegeben wurde, ist die erste dezentrale digitale Währung. 2. Litecoin (LTC), das am 7. Oktober 2011 veröffentlicht wurde, ist als "leichte Version von Bitcoin" bekannt. 3. Ripple (XRP), das 2011 ausgestellt wurde, wurde für grenzüberschreitende Zahlungen ausgelegt. V. 5. Ethereum (ETH), die am 30. Juli 2015 veröffentlicht wurde, ist die erste Plattform, die intelligente Verträge unterstützt. 6. Tether (USDT), das 2014 ausgestellt wurde, ist der erste Stablecoin, der an den US -Dollar 1: 1 verankert ist. 7. Ada,

Bei der Auswahl einer für Anfänger geeigneten Handelsplattform für digitale Währung müssen Sie Sicherheit, Benutzerfreundlichkeit, Bildungsressourcen und Kostentransparenz berücksichtigen: 1. Priorität wird Plattformen erteilt, die Kühlspeicher, Zwei-Faktor-Überprüfung und Versicherungsversicherung bieten. 2. Apps mit einfacher Schnittstelle und klarer Betrieb sind für Anfänger besser geeignet. 3. Die Plattform sollte Lernwerkzeuge wie Tutorials und Marktanalysen bereitstellen. 4. Achten Sie auf versteckte Kosten wie Transaktionsgebühren und Barauszahlungsgebühren.

In den inländischen Benutzeranpassungslösungen werden Konformitätskanäle und Lokalisierungstools gehören. 1. Compliance -Kanäle: Franchise -Währungsaustausch über OTC -Plattformen wie Circle Trade, im Inland müssen sie durch Hongkong- oder Überseeplattformen gehen. 2. Lokalisierungsinstrumente: Verwenden Sie das Währungskreisnetz, um chinesische Informationen zu erhalten, und die Huobi Global Station bietet ein Handelsanschluss von Meta-Universitäten.

Die zehn Top -Apps für digitale virtuelle Währung sind: 1. OKX, 2. Binance, 3. Gate.io, 4. Coinbase, 5. Kraken, 6. Huobi, 7. Kucoin, 8. Bitfinex, 9. Bitstamp, 10. Poloniex. Diese Börsen werden basierend auf Faktoren wie Transaktionsvolumen, Benutzererfahrung und Sicherheit ausgewählt und bieten eine Vielzahl von Handelsdiensten für digitale Währungen und eine effiziente Handelserfahrung.

Gate.io (Global Version) Kernvorteil ist, dass die Schnittstelle minimalistisch ist, Chinesisch unterstützt und der Fiat -Währungstransaktionsprozess intuitiv ist. Binance (vereinfachte Version) Core -Vorteil ist, dass das Handelsvolumen der Welt das erste der Welt ist und das einfache Versionsmodell nur den Spot -Handel behält. OKX (Hong Kong Version) Kernvorteil ist, dass die Schnittstelle einfach ist, Kantonesisch/Mandarin unterstützt und einen niedrigen Schwellenwert für Derivathandel hat. Der Kernvorteil von Huobi Global Station (Hong Kong Version) ist, dass es sich um eine alte Börse handelt, die ein Meta-Universitäts-Handelsterminal startet. Der Kernvorteil von Kucoin (Chinesische Community Edition) ist, dass es 800 Währungen unterstützt und die Schnittstelle die WeChat -Interaktion übernimmt. Der Kernvorteil von Kraken (Hong Kong Version) ist, dass es sich um einen alten amerikanischen Austausch handelt, der eine SVF -Lizenz in Hongkong hält und eine einfache Schnittstelle hat. Hashkey Exchange (Hong Kong Lizenzed) Kernvorteil ist ein bekannter lizenzierter Austausch in Hongkong, der das Gesetz unterstützt

Dürfen. Die beiden Börsen können Münzen aufeinander übertragen, solange sie die gleiche Währung und das gleiche Netzwerk unterstützen. Zu den Schritten gehören: 1. Erhaben Sie die Sammeladresse, 2. Ein Auszugsantrag einleiten. 3. Warten Sie auf Bestätigung. Anmerkungen: 1. Wählen Sie das richtige Übertragungsnetzwerk aus, 2. Überprüfen Sie die Adresse sorgfältig, 3. Verstehen Sie die Handhabungsgebühr, 4. Achten Sie auf die Kontozeit, 5. Bestätigen Sie, dass die Börse diese Währung unterstützt.
