devstar / coinbase
Coinbase API 类似官方文档接口,支持任意扩展。
1.1.3
2024-07-20 07:47 UTC
Requires
- php: >=7.0
- firebase/php-jwt: ^6.10
- guzzlehttp/guzzle: *
Requires (Dev)
- phpunit/phpunit: ^11.2
README
建议您首先阅读官方文档
Coinbase 文档 https://developers.coinbase.com/api/v2
Coinbase Pro 迁移到 V3。
Coinbase Pro 文档 https://docs.cdp.coinbase.com/advanced-trade/docs/welcome
所有接口方法均初始化与 Coinbase 提供的相同。详情见 src/api
大多数接口现已完成,用户可以根据我的设计继续扩展,与我合作改进。
安装
composer require devstar/coinbase
支持更多请求设置
$coinbase=new Coinbase(); //or $coinbase=new CoinbasePro(); // or $coinbase=new CoinbaseExchange(); //You can set special needs $coinbase->setOptions([ //Set the request timeout to 60 seconds by default 'timeout'=>10, //If you are developing locally and need an agent, you can set this 'proxy'=>true, //More flexible Settings /* 'proxy'=>[ 'http' => 'http://127.0.0.1:12333', 'https' => 'http://127.0.0.1:12333', 'no' => ['.cn'] ], */ //Close the certificate //'verify'=>false, ]);
Coinbase Spot API
公开 API 更多
$coinbase=new Coinbase(); try { $result=$coinbase->publics()->getTime(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->publics()->getCurrencies(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->publics()->getExchangeRates(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->publics()->getPricesBuy([ 'currency_pair'=>'BTC-USD' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->publics()->getPricesSell([ 'currency_pair'=>'BTC-USD' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->publics()->getPricesSpot([ 'currency_pair'=>'BTC-USD' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); }
私有 API 更多
//User try { $result=$coinbase->privates()->getUsers(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->privates()->getUser([ 'user_id'=>'fb352ff7-ce80-53ac-b0e1-7cfe51eca2ff' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->privates()->getUserAuth(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->privates()->putUser([ 'name'=>'linwenjun' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } //Accounts try { $result=$coinbase->privates()->getAccounts(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->privates()->getAccount([ 'account_id'=>'BTC' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->privates()->putAccount([ 'account_id'=>'BTC', 'name'=>'bbttcc' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } //Addresses try { $result=$coinbase->privates()->getAccountAddresses([ 'account_id'=>'BTC' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } //List transactions try { $result=$coinbase->privates()->getAccountTransactions([ 'account_id'=>'b1096c85-fbf8-5293-9424-5af475446ebd' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } //List buys try { $result=$coinbase->privates()->getAccountBuys([ 'account_id'=>'b1096c85-fbf8-5293-9424-5af475446ebd' ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } try { $result=$coinbase->privates()->getPaymentMethods(); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); } //Place buy order try { $result=$coinbase->privates()->postAccountBuys([ 'account_id'=>'b1096c85-fbf8-5293-9424-5af475446ebd', 'amount'=>'1', 'currency'=>'BTC', //'payment_method'=>'83562370-3e5c-51db-87da-752af5ab9559', ]); print_r($result); }catch (\Exception $e){ print_r(json_decode($e->getMessage(),true)); }
Coinbase Pro Spot API
市场相关 API 更多
$coinbase=new CoinbasePro(); try { $result=$coinbase->product()->getList(); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } try { $result=$coinbase->product()->getBook([ 'product_id'=>'BTC-USD', ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } try { $result=$coinbase->product()->getCandles([ 'product_id'=>'BTC-USD', ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); }
订单相关 API 更多
$coinbase=new CoinbasePro($key,$secret,$passphrase); //****************************Market try { $result=$coinbase->order()->post([ 'client_order_id' => time()."", 'side'=>'SELL', 'product_id'=>"BTC-USD", 'order_configuration' => [ 'market_market_ioc' => [ 'base_size'=>'0.001' ] ] ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } sleep(1); //track the order try { $result=$coinbase->order()->get([ 'id'=>$result['order_id'], ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } sleep(1); //cancellation of order try { $result=$coinbase->order()->delete([ 'id'=>$result['order_id'], //'id'=>'6bad6a7d-b01a-4a93-9e6e-e9934bcef4ef', ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } //track the order try { $result=$coinbase->order()->get([ 'id'=>$result['order_id'], //'client_oid'=>'' ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); }
账户相关 API 更多
$coinbase=new CoinbaseExchange($key,$secret,$passphrase); try { $result=$coinbase->account()->getList(); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } try { $result=$coinbase->account()->get([ 'account_id'=>'c74a36f5-4f2b-495b-be29-6eb2458d1b3a' ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } try { $result=$coinbase->account()->getHolds([ 'account_id'=>'c74a36f5-4f2b-495b-be29-6eb2458d1b3a' ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); } try { $result=$coinbase->account()->getLedger([ 'account_id'=>'c74a36f5-4f2b-495b-be29-6eb2458d1b3a' ]); print_r($result); }catch (\Exception $e){ print_r($e->getMessage()); }
测试
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/coinbase/AccountTest.php 更多测试