2014-11-09 45 views
0

我有一組soap API可以執行像登錄,註銷,keepalive,訪問其他幾個資源的動作。爲了訪問其他資源,我必須通過一個會話我從登錄api獲得的id。會話在5分鐘內獲得時間。 我很困惑如何使這個工作。如何通過登錄和會話codeigniter使用SOAP API

我爲我的項目使用codeigniter,並且我已經構建了一個庫,其中定義了一組soapAPI請求。

class Soap_api 
{ 
    function __construct() 
    { 

     define("UID",  "myuser"); 
     define("PWD", "34rf3a45575"); 
     define("API_ENDPOINT", "http://uat-api.testingsoapapi.in/services/smp"); 
     define("PRODUCT_CODE", "24"); 
     $resp = $this->keepAliveLib(); 
     if($resp['ResponseCode'] == '0') 
     { 
      define("SessionID",$resp['SessionID']); 
     } 

    } 
    function keepAliveLib() 
    { 
     $resp = $this->login(); 
     return $resp; 
    } 
    function one 
    { 
    //This function needs the sessionID receieved from login function 
    } 
    function two 
    { 
    //This function needs the sessionID receieved from login function 
    } 

所以,當過任何從這個類的功能被訪問時,構造函數調用它調用登錄功能居住在這個類和會話ID返回構造函數,並將其設置爲全局常量會話ID的keepAliveLib所以我調用的函數將使用那個作爲常量的會話ID。

這是調用會話中繼的API的標準方式嗎?調用函數時會調用登錄函數,並創建不同的會話ID。庫中有一個函數keepAlive可用於維護會話,但不是使用keepAlive,Im每次訪問時都會記錄一個函數。

這個流程有什麼問題嗎?可以通過其他方式來完成嗎?

回答

0

好吧,我可能不完全理解這一點,但會這項工作?

$resp = $this->keepAliveLib(); 
    if($resp['ResponseCode'] == '0') { 

     $this->sessionid = $resp['SessionID']); } 

    else { // fail gracefully } 

$這 - >的sessionid現在可以在控制器的任何方法。