2013-05-05 52 views
0

我想使用VEND API,但我不知道如何传递参数做各种事情。我在API文档中找到了一组代码,但无法通过它。以下是我所做的。如何传递Vend Api的参数?

<?php 
/** 
* 
* A class made for utility methods around Vend's API 
* 
* 
*/ 
class VendApiUtils { 

/** 
* A simple static method to call Vend API urls 
* 
* @param string $url 
* @param string $username 
* @param string $password 
* @param array $params <OPTIONAL> 
*/ 
public static function requestVendApiUrl($url, $username, $password, $params = array()) 
{ 
// is cURL installed? 
if (!function_exists('curl_init')) { 

throw new Exception('CURL is not installed!'); 
} 

// Create a new cURL instance 
$ch = curl_init(); 

$opts = array(
CURLOPT_URL => $url, 
CURLOPT_RETURNTRANSFER => 1, 
CURLOPT_POST => 1, 
CURLOPT_POSTFIELDS => array('data' => json_encode($params)), 
CURLOPT_TIMEOUT => 120, 
CURLOPT_FAILONERROR => 1, 
CURLOPT_HTTPAUTH => CURLAUTH_ANY, 
CURLOPT_USERPWD => "$username:$password" 
); 

// Assign the cURL options 
curl_setopt_array($ch, $opts); 

// Get the response 
$response = curl_exec($ch); 
print_r($response); 

// Close cURL 
curl_close($ch); 

// Execute the request & get the response 
echo $response; 
} 
} 


$your_domain='https://mydomain.vendhq.com'; 
$your_username='myuser'; 
$your_password='mypass'; 
$params = array('GET'=>'/api/stock_movements'); 
$response = VendApiUtils::requestVendApiUrl($your_domain, $your_username,$your_password, $params); 

//echo $response; 
?> 

任何帮助将非常appreicated。

问候, Abnab

+0

你的问题不是很清楚 - “为各种事情传递参数”是什么意思?你试图通过什么,从哪里到哪里,为什么你难以做到这一点? – IMSoP 2013-05-05 23:06:01

+0

@IMSoP感谢您的回复。我试图通过params变量传递请求。请求从Vend或物品明细获取库存。我在VEND API论坛中找到了这段代码,但它并不清楚如何将值传递给它。 – abnab 2013-05-05 23:19:03

回答

0

我不知道为什么你认为URL需要进入$params阵列;这看起来像我的地方,好吧,params。我认为这个功能的用途更多是这样的:

// Fixed parts, same for any request 
$domain='https://mydomain.vendhq.com'; 
$username='myuser'; 
$password='mypass'; 

// Variable parts, depending on what you want to do 
$url = '/api/stock_movements'; 
$params = array('some_key' => 'some_value'); 

$response = VendApiUtils::requestVendApiUrl($domain . $url, $username, $password, $params); 
+0

嗨, 感谢您的回答。可能是问题在我的结尾。我似乎没有得到任何输出。无论我发送get还是POST请求,都没有输出。但是,如果我直接将URL粘贴到浏览器上,则会出现结果。我正在从下面的链接中尝试此代码。 http://support.vendhq.com/entries/20954742-Simple-PHP-cURL-Example – abnab 2013-05-05 23:44:40

0

请检查pyvend客户端库。