2016-10-09 2 views
1

Я хочу использовать API отчетов WePay для целей отчетности, чтобы показать информацию о транзакции и изъятии WePay в моем пользовательском приложении. Когда я вызываю Wepayreports api, я столкнулся с некоторыми проблемами при передаче данных JSON с использованием PHP CURL.Как передать данные JSON с использованием PHP CURL в API WePay?

Мой код, как показано ниже:

<?php 
$data = array(
    "type" => "merchant_transactions", 
    "resource" => array(
     "object_type" => "account", 
     "object_id" => 634303761 
    ) 
); 
$ch = curl_init('https://stage.wepayapi.com/v2/report/create'); // URL of the call 
CURL_SETOPT($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8'); 
// execute the api call 
$result = curl_exec($ch); 
// display the json response 
echo '<pre>'; 
print_r(json_decode($result, true)); 
echo '</pre>'; 
?> 

Когда я пытаюсь вызвать это API вызовов получить данные, как показано ниже

{"{\"type\":\"merchant_transactions\",\"resource\":{\"object_type\":\"account\",\"object_id\":\"1776251645\"}}":""} 

Но мне нужно отправить данные, как показано ниже:

{"type":"merchant_transactions","resource":{"object_type":"account","object_id":"1776251645"}} 

Для справки: ссылка на документацию WePay API Documantation. WePay Reports API

Если у вас есть другие альтернативные решения для решения этой проблемы, пожалуйста, дайте мне знать.

Может ли кто-нибудь помочь мне в этом отношении? Любая помощь была оценена. Спасибо заранее.

+0

Просто используйте их PHP SDK i.e оболочку вокруг своего API для PHP. https://github.com/wepay/php-sdk – Jigar

+0

Используйте 'CURLOPT_HTTPHEADER' и установите его значение' application/json'. И отправьте фактическую строку json. – Jigar

+0

Возможный дубликат [Curl and PHP - как передать json через curl с помощью PUT, POST, GET] (http://stackoverflow.com/questions/21271140/curl-and-php-how-can-i-pass -a-json-through-curl-by-put-post-get) – Jigar

ответ

0

Для скачивания WePay отчета Окончательный код, как показано ниже.

<?php 
$data = array(
    "type" => "merchant_transactions", 
    "resource" => array(
     "object_type" => "account", 
     "object_id" => 634303761 
    ), 
    "callback_uri"=>"https://example.com/report/ipn" 
); 
$data = json_encode($data); 

$access_token = 'STAGE_5d93d1cfb8a47da7f726fd0cacfeda5ghfhgfhfgh0f74adbc089e1d36d1dc1ccc5a57aafd92b'; // access_token received from /oauth2/token call 
$ch = curl_init('https://stage.wepayapi.com/v2/report/create'); // URL of the call 
CURL_SETOPT($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',"Authorization: Bearer $access_token")); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8'); 
// execute the api call 
$result = curl_exec($ch); 
// display the json response 
echo '<pre>'; 
print_r(json_decode($result, true)); 
echo '</pre>'; 

?> 

Ответ API, как показано ниже.

Array 
(
    [report_id] => 23684078 
    [user_id] => 22866774 
    [resource] => Array 
     (
      [object_type] => account 
      [object_id] => 634303761 
     ) 

    [type] => merchant_transactions 
    [advanced_options] => Array 
     (
      [disable_email] => 1 
     ) 

    [state] => processing 
    [request_time] => 1476023145 
    [expires_time] => 
    [callback_uri] => https://example.com/report/ipn 
    [report_uri] => 
) 

Это очень полезное решение для интеграции API отчетов WePay. В пользовательском приложении. Это решение работает для меня на 100%. Если у вас возникли какие-либо проблемы, пожалуйста, дайте мне знать. я готов ответить.

+0

Вместо того, чтобы писать свой собственный ответ (это точно так же), вы должны принять мой ответ. Это помогло вам решить вашу проблему. – Jigar

1

Цитируя https://developer.wepay.com/general/api-call

аргументы Вызов должен быть передан как JSON в теле запроса с HTTP заголовка типа содержимого, установленным в приложении/JSON. Удостоверьтесь, что задает действительный заголовок User-Agent (наши SDK делают это за вас). Пользователь-агент может быть любым, но сохранять его информативным. Например: «WePay v2 PHP SDK v0.0.9».

И ваш ответ лежит здесь: Curl and PHP - how can I pass a json through curl by PUT,POST,GET

<?php 
$data = array(
    "type" => "merchant_transactions", 
    "resource" => array(
     "object_type" => "account", 
     "object_id" => 634303761 
    ) 
); 
$data_json = json_encode($data); 
$ch = curl_init('https://stage.wepayapi.com/v2/report/create'); // URL of the call 
CURL_SETOPT($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8'); 
// execute the api call 
$result = curl_exec($ch); 
// display the json response 
echo '<pre>'; 
print_r(json_decode($result, true)); 
echo '</pre>'; 
?> 
+0

Большое вам спасибо. Эта информация очень полезна для меня. – Faisal

Смежные вопросы