[英]Coinbase button creation and callback
我試圖創建一個按鈕,並用coinbase分配一個回調URL。
嘗試發布到coinbase API時,我返回了一些驗證碼數據。
我認為我的Web主機被CloudFlare阻止,從而禁用了我的代碼。
這是我所擁有的:
<a class="coinbase-button" data-code="<?php
$data = array(
"button" => array(
"name" => "Ticket",
"price_string" => "0.01",
"price_currency_iso" => "BTC",
"custom" => $OrderNext . "- " . $ticket,
"callback_url" => "https://x.com/callback.php",
"description" => "Ticket - " . $ticket ,
"type" => "buy_now",
"style" => "buy_now_large"
)
);
$json_data = json_encode($data);
$ch = curl_init("https://coinbase.com/api/v1/buttons?api_key=xxxxxxxxxxxxxxxxxxxxxx");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json_data))
);
if( ! $output = curl_exec($ch))
{
trigger_error(curl_error($ch));
}
$result = json_decode($output);
$output
返回一個驗證碼頁面。
$result
為空。
謝謝你的幫助。
來自Coinbase的Brian。 看來您正在按API來為每個頁面加載生成一個新的付款按鈕,這取決於您獲得的流量,可能會在內部或通過CloudFlare觸發我們的速率限制。
當前,例如,對於大多數商人而言,我們目前每天在內部將商人創建按鈕api限制為每天10,000次通話。
更好的方法是為每個產品(或價格發生變化)點擊一次API,然后存儲生成的“ code”參數。 如果將其保存在數據庫中,則可以在每次頁面加載時重用它。 這也將幫助您更快地加載頁面。
更多詳細信息: https : //coinbase.com/api/doc/1.0/buttons/create.html
希望能幫助到你!
我從未使用過coinbase,但是您是否檢查過主機是否在phpinfo()中啟用了curl支持? 或者也許curl_init / curl_exec在禁用的函數列表中。
編輯:
如果您使用的是https網址,則必須提供CA證書以進行設置標志CURLOPT_CAINFO的檢查,或者禁用將CURLOPT_SSL_VERIFYPEER設置為false的證書驗證。
您可以使用這樣的代碼生成付款按鈕
$apikey ="***************";
$apisecret = "************************";
$nonce = sprintf('%0.0f',round(microtime(true) * 1000000));
$url = "https://api.sandbox.coinbase.com/v1/buttons?nonce=" . $nonce;
$parameters = [];
$parameters["button"]["name"] = "Checkout Invoice";
$parameters["button"]["custom"] = $orderId;
$parameters["button"]["price_string"] = $priceString;
$parameters["button"]["type"] = "buy_now";
$parameters["button"]["subscription"] = false;
$parameters["button"]["price_currency_iso"] = "USD";
$parameters["button"]["description"] = "Checkout Invoice";
$parameters["button"]["style"] = "custom_large";
$parameters["button"]["include_email"] = true;
$parameters["button"]["callback_url"] = url("bitcoin/callback");
$parameters = http_build_query($parameters, true);
$signature = hash_hmac("sha256", $nonce . $url . $parameters, $apisecret);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
"ACCESS_KEY: " . $apikey,
"ACCESS_NONCE: " . $nonce,
"ACCESS_SIGNATURE: " . $signature
)));
curl_setopt_array($ch, array(
CURLOPT_POSTFIELDS => $parameters,
CURLOPT_POST => true,
));
$response = curl_exec($ch);
curl_close($ch);
$decodeResponse = json_decode($response);
它將返回按鈕代碼以在coinbase上付款。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.