2016-12-30 169 views
0

我需要從其他Web應用程序檢索Magento訂單評論。通過API檢索Magento訂單評論

Magento API文檔似乎有兩種方法可以做到這一點,通過RESTSOAP

REST文檔很少。它只說URL結構是這樣的:http://magentohost/api/rest/orders/:orderid/comments

此外,默認的REST響應是XML,但我需要它在JSON。

我已經有一個在Magento中設置的API用戶,並且我使用SOAP創建了來自這個「其他」web應用程序的評論。

我的問題,使用REST:

  1. 我如何在JSON而不是XML響應?
  2. 我如何進行身份驗證?

回答

0

如何以檢索Magento的訂單評論與REST API

這裏是REST API認證和Retrive訂單註釋的示例代碼。

Magento的測試文件

<?php 
session_start(); 
$mageFilename = '../app/Mage.php'; 

require $mageFilename; 
Mage::app(); 

// $callbackUrl is a path to your file with OAuth authentication example for the Admin user 
$callbackUrl = "http://magentohost/extrafiles/oauth-test.php"; 
//oAuth Initiate URL 
$temporaryCredentialsRequestUrl = "http://magentohost/oauth/initiate?oauth_callback=" . urlencode($callbackUrl); 
//oAuth Authorize 
$adminAuthorizationUrl = 'http://magentohost/admin/oauth_authorize'; 
//oAuth Token URL 
$accessTokenRequestUrl = 'http://magentohost/oauth/token'; 
//API Url 
$apiUrl = 'http://magentohost/api/rest'; 

//Consumer Key 
$consumerKey = '{{PUT_YOUR_CONSUMER_KEY}}'; 
//Consumer Secret 
$consumerSecret = '{{CONSUMER_SECRET}}'; 


if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && $_SESSION['state'] == 1) 
{ 
    $_SESSION['state'] = 0; 
} 
try 
{ 
    $authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION : OAUTH_AUTH_TYPE_URI; 
    $oauthClient = new OAuth($consumerKey, $consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, $authType); 
    $oauthClient->enableDebug(); 

    if (!isset($_GET['oauth_token']) && !$_SESSION['state']) 
    { 
     $requestToken = $oauthClient->getRequestToken($temporaryCredentialsRequestUrl); 
     $_SESSION['secret'] = $requestToken['oauth_token_secret']; 
     $_SESSION['state'] = 1; 
     header('Location: ' . $adminAuthorizationUrl . '?oauth_token=' . $requestToken['oauth_token']); 
     exit; 
    } 
    else if ($_SESSION['state'] == 1) 
    { 
     $oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']); 
     $accessToken = $oauthClient->getAccessToken($accessTokenRequestUrl); 
     $_SESSION['state'] = 2; 
     $_SESSION['token'] = $accessToken['oauth_token']; 
     $_SESSION['secret'] = $accessToken['oauth_token_secret']; 
     header('Location: ' . $callbackUrl); 
     exit; 
    } 
    else 
    { 
     $oauthClient->setToken($_SESSION['token'], $_SESSION['secret']); 

     $resourceUrl = "$apiUrl/orders/21833/comments"; 

     $oauthClient->fetch($resourceUrl, array(), 'GET', array('Accept' => '*/*')); 
     echo $oauthClient->getLastResponse(); 
    } 
} 
catch (OAuthException $e) 
{ 
    print_r($e->getMessage()); 
    echo "<br/>"; 
    print_r($e->lastResponse); 
} 

exit; 
?> 

迴應:

[ 
    { 
    "created_at": "2016-12-06 15:53:28", 
    "comment": "On order, Following Activity is done By: XXX Captured amount of $2,669.97 online. Transaction ID: \"XXXXXXX\".", 
    "is_customer_notified": "2", 
    "is_visible_on_front": "0", 
    "status": "processing" 
    }, 
    { 
    "created_at": "2016-12-06 15:53:28", 
    "comment": "Order is Created with following : Order is Created By: XXX Grand Total: $2669.97", 
    "is_customer_notified": null, 
    "is_visible_on_front": "0", 
    "status": "processing" 
    } 
]