我正在尝试将transdirect.com运输集发件人API实施到我的网站,但我收到错误,我不知道它的主要原因是什么。
这里是片段::
$params = array(
'session' => $session,
'postcode' => '2164',
'name' => 'abc',
'company'=>'abc',
'email' => $email ,
'phone' => '4561237',
'streetName' => 'abcStreet',
'streetNumber' => '28',
'streetType' => 'St',
'suburb' => 'JHONFEILD',
'state' => 'NSW',
'pickupDate' => date( 'Y-m-d' ),
'pickupTime' => '1-4pm',
'hydraulicGate' =>'false'
);
$query = http_build_query($params);
$query = 'http://transdirect.com.au/api/v2/booking/sender?'.$query;
$result = json_decode( curl_sender( $query, $session, $email, $arg = 'sender') );
// curl_sender method ::
function curl_sender( $url, $session, $email, $arg ) {
if ( $arg == 'sender' ) {
$datastring = "postcode=2164&name=Tara Trampolines&company=abc&email=".$email."&phone=0280049375&streetName=Unit 4/28 Victoria St&streetNumber=28&streetType=St&suburb=SMITHFIELD&state=NSW&pickupDate". date( 'Y-m-d' )."&pickupTime=1-4pm&hydraulicGate=false";
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datastring);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data1 = curl_exec( $ch );
curl_close( $ch );
return $data1;
}
我得到了:
stdClass Object (
[message] => Must be authenticated-please create a session first.
[code] => 403
)
这是我们实现api的链接:: http://transdirect.com.au/api/v2/documentation
请说明我们如何验证每种方法。 任何帮助都会很明显,提前谢谢。
答案 0 :(得分:0)
在请求API之前,您需要创建一个有效的会话。
创建会话:
$credentials = array(
'email' => 'test@example.com',
'password' => 'secret'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $credentials);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
查看会话部分:http://transdirect.com.au/api/v2/documentation
您无法混合会话创建过程和真实的API请求。
我不确定,但我认为您不必将有效会话用作任何参数。 文档说只创建一个有效的会话,没有指定参数来附加会话,所以创建就足够了。
这对你来说可能非常重要:
使用任何特殊说明确认预订等。预订后 确认您的会话已被清除,您将需要 重新认证。