我需要从其他网络应用程序中检索Magento订单评论。
Magento API文档似乎有两种方法,通过REST和SOAP。
REST文档很少。它只表示URL结构如下:http://magentohost/api/rest/orders/:orderid/comments
此外,默认的REST响应是XML格式,但我需要它在JSON中。
我已经在Magento中设置了一个API用户,并且我使用SOAP从这个“其他”Web应用程序创建了评论。
我的问题,使用REST:
答案 0 :(得分:0)
如何使用REST Api检索Magento订单评论
以下是REST API身份验证和Retrive Order Comments的示例代码。
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"
}
]