设置Transdirect Shipping sender APi代码时出错

时间:2013-09-19 07:32:10

标签: php

我正在尝试将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

请说明我们如何验证每种方法。    任何帮助都会很明显,提前谢谢。

1 个答案:

答案 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请求。

  1. 创建会话
  2. 使用此会话从步骤1创建API请求。
  3. 我不确定,但我认为您不必将有效会话用作任何参数。 文档说只创建一个有效的会话,没有指定参数来附加会话,所以创建就足够了。

    这对你来说可能非常重要:

      

    使用任何特殊说明确认预订等。预订后   确认您的会话已被清除,您将需要   重新认证。