-1

我正在尝试将 transdirect.com shipping set sender 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 方法::

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

请指定我们如何验证每种方法。任何帮助将不胜感激,在此先感谢。

4

1 回答 1

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

我不确定,但我认为您不必将有效会话用作任何参数。文档说只创建一个有效的会话,没有指定附加会话的参数,所以创建可能就足够了。

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

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

于 2013-09-19T07:53:15.340 回答