Intereting Posts
SilverStripe 3 Фильтрация / фильтрация DataObjects в функции PHP-код для разделения URL-адреса почему Пытается получить свойство ошибки, отличной от объекта реализация google oauth2 для расширения chrome, взаимодействующего с нашими серверами Как выполнить модульное тестирование Исключения с помощью PHPUnit? Параметр Codeigniter, передаваемый контроллеру jquery добавить класс к этому кликнутому элементу Внедрение междоменной связи между сайтами через CORS с использованием PHP и Javascript Linux / php требует родительский каталог выборка данных из mysql в представление списка в android только показывает первый элемент из таблицы, как исправить? Как защищать паролем файлы (изображения, видео, zip) динамически от публики и разрешать доступ только к членам? php mcrypt – дешифрование и шифрование файлов? Перенаправить все запросы в index.php с помощью .htaccess Symfony не может найти файл шаблона Должны ли все данные отправляться HTTP-POST?

CoinKite new / receive – передача правильных параметров

Я пытаюсь сгенерировать new/receive пакет BitCoin с Coinkite API . Проблема в том, что API отклоняет мой вызов с сообщением об ошибке Bad Request и некоторыми неожиданными аргументами для обязательных аргументов.

 $endpoint='/v1/new/receive'; $url='https://api.coinkite.com'.$endpoint; $sign = CKsign($endpoint); $API_KEY = 'KebXXXXXX-XXXXXXXX-XXXXXXXXXXXXXXXX'; $ch = curl_init($url); curl_setopt($ch,CURLOPT_HTTPHEADER,array("X-CK-Key: {$API_KEY}", "X-CK-Sign: {$sign[0]}", "X-CK-Timestamp: {$sign[1]}")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); $data = array('memo' => 'test pubkey 1', 'account' => '1FXXXXXX-XXXXXX'); //$data = array(array("memo","test pubkey 1"), array("account","1F3A7E22A8-51F278")); $data = json_encode($data); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $result = curl_exec($ch); curl_close($ch); echo $result; 

Сообщение об ошибке, которое я получаю:

 { "help_msg": "Unexpected arg(s): {\"memo\":\"test pubkey 1\",\"account\":\"1FXXXXXX-XXXXXX\"}", "message": "Bad Request", "status": 400 } 

Прокомментированная строка, фиктивный вектор, дает ту же ошибку, и я не понимаю, почему это происходит, поскольку это обязательные аргументы. Что я здесь делаю неправильно?

Omit "$ data = json_encode ($ data);". Нашел решение в https://github.com/coinkite/coinkite-php/blob/master/lib/CKRequestor.php : «$ args = JSON document или массив аргументов».

1) Первый шаг для таких вопросов – проверить «Отладка в реальном времени». Он показывает все аргументы, большинство заголовков, результатов и сообщений об ошибках для всего, что происходит с ключом API.

Откройте «Инструменты»> «Ключи API» и найдите волшебную палочку:

введите описание изображения здесь

2) В данном случае здесь нет ничего плохого в «memo» и «account», и они являются действительным аргументом для этой команды. Я думаю, что проблема заключается в кодировании ваших данных. Я думаю, что он отправляет его в виде данных формы? Вместо этого вы должны использовать JSON. Coinkite рекомендует PUT JSON (включая правильную строку заголовка Content-Type: application/json ). Загляните в режим отладки в реальном времени и посмотрите, как сервер видит ваши данные, чтобы проверить, что это проблема.

Надеюсь, это поможет!