-1

ボタンを作成し、コインベースでコールバック URL を割り当てようとしています。

Coinbase API に投稿しようとすると、CAPTCHA データが返されます。

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);

$outputCAPTCHA ページを返します。

$result無効です。

助けてくれてありがとう。

4

3 に答える 3

2

Coinbase の Brian です。ページの読み込みごとに新しい支払いボタンを生成するために API を使用しているようです。トラフィックの量に応じて、内部または CloudFlare を介してレート制限をトリガーできます。

現在、マーチャント作成ボタン API は、たとえばほとんどのマーチャントで、1 日あたり 10,000 回の呼び出しに制限されています。

より良いアプローチは、製品ごとに (または価格が変更された場合に) API を 1 回ヒットし、結果の「コード」パラメーターを保存することです。これをデータベースに保存すると、ページの読み込みごとに再利用できます。これにより、ページの読み込みも速くなります。

詳細: https://coinbase.com/api/doc/1.0/buttons/create.html

それが役に立てば幸い!

于 2013-10-10T23:44:21.123 に答える
1

Coinbase を使用したことはありませんが、ホストの phpinfo() で curl サポートが有効になっているかどうかを確認しましたか? または、curl_init / curl_exec が無効な機能のリストに含まれている可能性があります。

編集:

https URL を使用している場合は、フラグCURLOPT_CAINFOを設定してチェックする CA 証明書を提供するか、 CURLOPT_SSL_VERIFYPEERを false に設定して証明書の検証を無効にする必要があります。

于 2013-09-25T03:13:34.767 に答える