2016-10-09 21 views
1

私はカスタムアプリケーションでWePayの取引と引き出し情報を表示するためのレポート目的で、WePayレポートAPIを使用したいと考えています。 Wepayreports APIを呼び出すと、PHP CURLを使用してJSONデータを渡す際にいくつかの問題が発生しました。以下のようなWePay APIでPHP CURLを使用してJSONデータを渡す方法は?

マイコード:

<?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のAPIを使用するだけでPHPのAPIを使用できます。 https://github.com/wepay/php-sdk – Jigar

+0

'CURLOPT_HTTPHEADER'を使用し、その値を' application/json'に設定します。実際のjson文字列を送信します。 – Jigar

+0

[CurlとPHPの重複] PUT、POST、GETによってjsonをカールさせるにはどうすればいいですか?(http://stackoverflow.com/questions/21271140/curl-and-php-how-can-i-pass -a-json-through-curl-by-put-post-get) – Jigar

答えて

0

<?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] => 
) 

これは、カスタムアプリケーションでWePay Reports APIを統合するのに非常に便利なソリューションです。このソリューションは私のために100%働いています。あなたが何らかの問題に直面した場合は、私に知らせてください。私は答える準備ができています。

+0

あなた自身の答えを書くのではなく(まったく同じです)、私の答えを受け入れる必要があります。それがあなたの問題を解決するのに役立つものであったからです。 – Jigar

1

https://developer.wepay.com/general/api-call

から引用コールの引数は、アプリケーション/ JSONに設定されているコンテンツタイプのHTTPヘッダと要求 の本体にJSONとして渡さなければなりません。有効なUser-Agentヘッダーを に設定してください(SDKがこれを行います)。 User-Agentは何でもかまいませんが、情報を残しておいてください。例: "WePay v2 PHP SDK v0.0.9"

そして、あなたの答えはここにある:以下のようにWePayレポート最終的なコードをダウンロードするための 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

関連する問題