Jadual Kandungan
安装
认证
API密钥
OAuth2
双因素身份验证
分页
 警告
资源引用
响应
活动记录方法
用法
市场数据
用户
帐号
地址
交易
买入
卖出
存款
取款
支付方式
商家
订单
结账
通知webhook和验证
贡献和测试
Rumah pembangunan bahagian belakang tutorial php PHP如何使用比特币Coinbase钱包库开发应用(详细步骤)

PHP如何使用比特币Coinbase钱包库开发应用(详细步骤)

Oct 19, 2018 pm 03:50 PM
php Rantaian sekat hujung belakang Bitcoin pengaturcara

本篇文章给大家带来的内容是关于PHP如何使用比特币Coinbase钱包库开发应用(详细步骤),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

这是Coinbase Wallet API v2的官方客户端库。我们提供直观,稳定的界面,将Coinbase Wallet集成到的PHP项目中。

重要提示:由于此库是针对较新的API v2的,因此需要v2权限(即wallet:accounts:read)。如果你仍在使用v1,请使用此库的旧版本。

安装

使用Composer安装库。如果你不熟悉Composer或依赖管理器,请阅读Composer文档。

"require": {
    "coinbase/coinbase": "~2.0"
}
Salin selepas log masuk

认证

API密钥

使用API密钥和密钥访问你自己的Coinbase帐户。

use Coinbase\Wallet\Client;
use Coinbase\Wallet\Configuration;

$configuration = Configuration::apiKey($apiKey, $apiSecret);
$client = Client::create($configuration);
Salin selepas log masuk

OAuth2

使用OAuth2身份验证访问你自己以外的用户帐户。此库不处理握手过程,并假定你在初始化时具有访问token。你可以使用OAuth2客户端(例如league/oauth2-client)处理握手过程。

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);
Salin selepas log masuk

双因素身份验证

发送资金端点在某些情况下需要2FA令牌(在此处阅读更多内容)。如果需要,则抛出特定异常。

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',
    ]);
}
Salin selepas log masuk

分页

几个端点是分页的。默认情况下,库只会获取给定请求的第一页数据。你可以轻松加载不仅仅是第一页结果。

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

你还可以使用fetch_all参数让库发出加载完整集合的所有必要请求。

use Coinbase\Wallet\Enum\Param;

$transactions = $client->getAccountTransactions($account, [
    Param::FETCH_ALL => true,
]);
Salin selepas log masuk

 警告

注意警告是明智的。如果配置了一个标准PSR-3记录器,库将记录所有警告。

use Coinbase\Wallet\Client;
use Coinbase\Wallet\Configuration;

$configuration = Configuration::apiKey($apiKey, $apiSecret);
$configuration->setLogger($logger);
$client = Client::create($configuration);
Salin selepas log masuk

资源引用

在某些情况下,API将返回资源引用来代替扩展的资源对象。可以通过刷新来扩展这些引用。

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

你还可以使用expand参数请求API在初始请求中返回扩展资源。

use Coinbase\Wallet\Enum\Param;

$deposit = $this->client->getAccountDeposit($account, $depositId, [
    Param::EXPAND = ['transaction'],
]);
Salin selepas log masuk

创建新资源时可以使用资源引用,从而避免从API请求资源的开销。

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
]);
Salin selepas log masuk

响应

有多种方法可以访问原始响应数据。首先,每个资源对象都有一个getRawData()方法,你可以使用该方法访问未映射到对象属性的任何字段。

$data = $deposit->getRawData();
Salin selepas log masuk

来自最后一个HTTP响应的原始数据也可在客户端对象上使用。

$data = $client->decodeLastResponse();
Salin selepas log masuk

活动记录方法

该库包括对资源对象上的活动记录方法的支持。你必须在引导应用程序时启用此功能。

$client->enableActiveRecord();
Salin selepas log masuk

启用后,你可以在资源对象上调用活动记录方法。

use Coinbase\Wallet\Enum\Param;

$transactions = $account->getTransactions([
    Param::FETCH_ALL => true,
]);
Salin selepas log masuk

用法

这并不是为了提供API的完整文档。有关更多详细信息,请参阅官方文档。

市场数据

列出支持的本地货币

$currencies = $client->getCurrencies();
Salin selepas log masuk

列出汇率

$rates = $client->getExchangeRates();
Salin selepas log masuk

买入价

$buyPrice = $client->getBuyPrice('BTC-USD');
Salin selepas log masuk

卖出价

$sellPrice = $client->getSellPrice('BTC-USD');
Salin selepas log masuk

现货价格

$spotPrice = $client->getSpotPrice('BTC-USD');
Salin selepas log masuk

当前服务器时间

$time = $client->getTime();
Salin selepas log masuk

用户

获取授权信息

$auth = $client->getCurrentAuthorization();
Salin selepas log masuk
Salin selepas log masuk

查找用户信息

$auth = $client->getCurrentAuthorization();
Salin selepas log masuk
Salin selepas log masuk

获取当前用户

$user = $client->getCurrentUser();
Salin selepas log masuk

更新当前用户

$user->setName('New Name');
$client->updateCurrentUser($user);
Salin selepas log masuk

帐号

列出所有帐户

$accounts = $client->getAccounts();
Salin selepas log masuk

列出帐户详细信息

$account = $client->getAccount($accountId);
Salin selepas log masuk

列出主要帐户详细信息

$account = $client->getPrimaryAccount();
Salin selepas log masuk

将帐户设为主要帐户

$client->setPrimaryAccount($account);
Salin selepas log masuk

创建一个新的比特币账户

use Coinbase\Wallet\Resource\Account;

$account = new Account([
    'name' => 'New Account'
]);
$client->createAccount($account);
Salin selepas log masuk

更新帐户

$account->setName('New Account Name');
$client->updateAccount($account):
Salin selepas log masuk

删除帐户

$client->deleteAccount($account);
Salin selepas log masuk

地址

列出帐户的接收地址

$addresses = $client->getAccountAddresses($account);
Salin selepas log masuk

获取接收地址信息

$address = $client->getAccountAddress($account, $addressId);
Salin selepas log masuk

列出地址的交易

$transactions = $client->getAddressTransactions($address);
Salin selepas log masuk

创建一个新的接收地址

use Coinbase\Wallet\Resource\Address;

$address = new Address([
    'name' => 'New Address'
]);
$client->createAccountAddress($account, $address);
Salin selepas log masuk

交易

列出交易清单

$transactions = $client->getAccountTransactions($account);
Salin selepas log masuk

获取交易信息

$transaction = $client->getAccountTransaction($account, $transactionId);
Salin selepas log masuk

发送资金

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(); 
}
Salin selepas log masuk

将资金转入新帐户

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);
Salin selepas log masuk

申请资金

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);
Salin selepas log masuk

重新发送请求

$account->resendTransaction($transaction);
Salin selepas log masuk

取消请求

$account->cancelTransaction($transaction);
Salin selepas log masuk

完成请求

$account->completeTransaction($transaction);
Salin selepas log masuk

买入

列出购买清单

$buys = $client->getAccountBuys($account);
Salin selepas log masuk

获取购买信息

$buy = $client->getAccountBuy($account, $buyId);
Salin selepas log masuk

买入比特币

use Coinbase\Wallet\Resource\Buy;

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

$client->createAccountBuy($account, $buy);
Salin selepas log masuk

购买确认

如果在创建购买时传递commit=false,则只需执行此操作。

use Coinbase\Wallet\Enum\Param;

$client->createAccountBuy($account, $buy, [Param::COMMIT => false]);
$client->commitBuy($buy);
Salin selepas log masuk

卖出

出售清单

$sells = $client->getAccountSells($account);
Salin selepas log masuk

获取销售信息

$sell = $client->getAccountSell($account, $sellId);
Salin selepas log masuk

卖比特币

use Coinbase\Wallet\Resource\Sell;

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

$client->createAccountSell($account, $sell);
Salin selepas log masuk

出售确认

如果在创建sell时传递commit=false,则只需执行此操作。

use Coinbase\Wallet\Enum\Param;

$client->createAccountSell($account, $sell, [Param::COMMIT => false]);
$client->commitSell($sell);
Salin selepas log masuk

存款

列出存款清单

$deposits = $client->getAccountDeposits($account);
Salin selepas log masuk

获取存款信息

$deposit = $client->getAccountDeposit($account, $depositId);
Salin selepas log masuk

存款

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);
Salin selepas log masuk

提交押金

如果在创建存款时传递commit=false,则只需执行此操作。

use Coinbase\Wallet\Enum\Param;

$client->createAccountDeposit($account, $deposit, [Param::COMMIT => false]);
$client->commitDeposit($deposit);
Salin selepas log masuk

取款

列出提款单

$withdrawals = $client->getAccountWithdrawals($account);
Salin selepas log masuk

取消

$withdrawal = $client->getAccountWithdrawal($account, $withdrawalId);
Salin selepas log masuk

提款

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);
Salin selepas log masuk

提交退出

如果在调用提款方法时传递commit=true,则只需执行此操作。

use Coinbase\Wallet\Enum\Param;

$client->createAccountWithdrawal($account, $withdrawal, [Param::COMMIT => false]);
$client->commitWithdrawal($withdrawal);
Salin selepas log masuk

支付方式

列出付款方式

$paymentMethods = $client->getPaymentMethods();
Salin selepas log masuk

获取付款方式

$paymentMethod = $client->getPaymentMethod($paymentMethodId);
Salin selepas log masuk

商家

获得商家

$merchant = $client->getMerchant($merchantId);
Salin selepas log masuk

订单

列出订单

$orders = $client->getOrders();
Salin selepas log masuk

获得订单

$order = $client->getOrder($orderId);
Salin selepas log masuk

创建订单

use Coinbase\Wallet\Resource\Order;
use Coinbase\Wallet\Value\Money;

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

$client->createOrder($order);
Salin selepas log masuk

退款订单

use Coinbase\Wallet\Enum\CurrencyCode;

$client->refundOrder($order, CurrencyCode::BTC);
Salin selepas log masuk

结账

列出结帐单

$checkouts = $client->getCheckouts();
Salin selepas log masuk

创建结帐单

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";
Salin selepas log masuk

结帐

$checkout = $client->getCheckout($checkoutId);
Salin selepas log masuk

获取结帐的订单

$orders = $client->getCheckoutOrders($checkout);
Salin selepas log masuk

创建结帐订单

$order = $client->createNewCheckoutOrder($checkout);
Salin selepas log masuk

通知webhook和验证

$raw_body = file_get_contents('php://input');
$signature = $_SERVER['HTTP_CB_SIGNATURE'];
$authenticity = $client->verifyCallback($raw_body, $signature); // boolean
Salin selepas log masuk

贡献和测试

测试套件使用PHPUnit构建。通过运行phpunit命令运行单元测试套件。

phpunit
Salin selepas log masuk

还有一组集成测试,它们向API发出实际请求并检查生成的对象。要运行这些测试,必须将phpunit.xml.dist复制到phpunit.xml,为CB_API_KEYCB_API_SECRET变量提供值,并在运行测试套件时指定integration组。

phpunit --group integration
Salin selepas log masuk

Atas ialah kandungan terperinci PHP如何使用比特币Coinbase钱包库开发应用(详细步骤). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Apa itu Ouyi? Apa itu Ouyi Apa itu Ouyi? Apa itu Ouyi Apr 01, 2025 pm 03:18 PM

OKX adalah platform perdagangan aset digital global. Fungsi utamanya termasuk: 1. Membeli dan menjual aset digital (perdagangan tempat), 2. Dagangan antara aset digital, 3. Menyediakan syarat dan data pasaran, 4. Menyediakan produk perdagangan yang pelbagai (seperti derivatif), 5.

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

Bagaimana cara menggulung kedudukan dalam mata wang digital? Apakah platform rolling mata wang digital? Bagaimana cara menggulung kedudukan dalam mata wang digital? Apakah platform rolling mata wang digital? Mar 31, 2025 pm 07:36 PM

Posisi Rolling Mata Wang Digital adalah strategi pelaburan yang menggunakan pinjaman untuk menguatkan leverage perdagangan untuk meningkatkan pulangan. Artikel ini menerangkan proses penggulungan mata wang digital secara terperinci, termasuk langkah-langkah utama seperti memilih platform perdagangan yang menyokong rolling (seperti Binance, Okex, Gate.io, Huobi, Bybit, dll), membuka akaun leverage, menetapkan leverage berbilang, meminjam dana untuk perdagangan, Walau bagaimanapun, perdagangan kedudukan rolling sangat berisiko, dan pelabur perlu beroperasi dengan berhati -hati dan merumuskan strategi pengurusan risiko yang lengkap. Untuk mengetahui lebih lanjut mengenai tip rolling mata wang digital, sila teruskan membaca.

Bagaimana cara mengira yuran urus niaga platform perdagangan Gate.io? Bagaimana cara mengira yuran urus niaga platform perdagangan Gate.io? Mar 31, 2025 pm 09:15 PM

Yuran pengendalian platform perdagangan Gate.io berbeza mengikut faktor seperti jenis urus niaga, pasangan transaksi, dan tahap VIP pengguna. Kadar yuran lalai untuk perdagangan tempat ialah 0.15% (tahap VIP0, pembuat dan pengambil), tetapi tahap VIP akan diselaraskan berdasarkan jumlah dagangan 30 hari pengguna dan kedudukan GT. Semakin tinggi tahap, semakin rendah kadar bayaran akan. Ia menyokong potongan duit syiling platform GT, dan anda boleh menikmati diskaun minimum sebanyak 55%. Kadar lalai untuk urus niaga kontrak ialah pembuat 0.02%, pengambil 0.05% (tahap VIP0), yang juga dipengaruhi oleh tahap VIP, dan jenis kontrak yang berbeza dan leverage

Terangkan ungkapan perlawanan (Php 8) dan bagaimana ia berbeza dari suis. Terangkan ungkapan perlawanan (Php 8) dan bagaimana ia berbeza dari suis. Apr 06, 2025 am 12:03 AM

Dalam Php8, ungkapan perlawanan adalah struktur kawalan baru yang mengembalikan hasil yang berbeza berdasarkan nilai ungkapan. 1) Ia sama dengan pernyataan suis, tetapi mengembalikan nilai dan bukannya blok pernyataan pelaksanaan. 2) Ekspresi perlawanan secara ketat (===), yang meningkatkan keselamatan. 3) Ia mengelakkan kemungkinan ketinggalan dalam penyataan suis dan meningkatkan kesederhanaan dan kebolehbacaan kod.

Apakah laman web yang disyorkan untuk perisian aplikasi mata wang maya? Apakah laman web yang disyorkan untuk perisian aplikasi mata wang maya? Mar 31, 2025 pm 09:06 PM

Artikel ini mencadangkan sepuluh laman web cadangan aplikasi yang berkaitan dengan mata wang maya, termasuk Binance Academy, OKX Learn, Coingecko, Cryptoslate, Coindesk, Investopedia, Coinmarketcap, Huobi University, Coinbase Learn and Cryptocompare. Laman web ini bukan sahaja memberikan maklumat seperti data pasaran mata wang maya, analisis trend harga, dan lain -lain, tetapi juga menyediakan sumber pembelajaran yang kaya, termasuk pengetahuan asas blok, strategi perdagangan, dan tutorial dan ulasan pelbagai aplikasi platform perdagangan, membantu pengguna memahami dan menggunakannya

See all articles