2016-12-28 10 views
1

私はcakephp 2.0フレームワークを使用しています。誰もが私はUnscubscribe機能にuser_idを送るwhenver私が退会機能 enter image description here毎月の定期支払いの定期購読を停止しますか?

public function unsubscribe() { 
    if(isset($_POST['user_id']) && !empty($_POST['user_id'])){ 
     $this->loadModel('PaypalSinglePayment'); 
     $this->loadModel('PaypalRecurringPayment'); 
     $userDetails = $this->PaypalSinglePayment->find('first', array(
      'conditions'=> array(
       'user_id'=>$_POST['user_id'], 
       'payment_type'=>"Month" 
       ) 
      ) 
     );    
     if(!empty($userDetails)) 
     {    
      $profile_id=urlencode($userDetails['PaypalSinglePayment']['subscriber_id']);    
      $profileID=urlencode($profile_id); 
      $action = urlencode('Cancel'); 
      $nvpStr="&PROFILEID=$profileID&ACTION=$action"; 
      $paypal = new PaypalPro(['live'=>1]); 
      $resArray=$paypal->hashCall("ManageRecurringPaymentsProfileStatus",$nvpStr); 
      $ack = strtoupper((string)$resArray["ACK"]); 
      if($ack=="SUCCESS"){ 
      $this->PaypalSinglePayment->id = $userDetails['PaypalSinglePayment']['id']; 
      $data['payment_status'] = "Cancel"; 

      if($this->PaypalSinglePayment->save($data)){ 
       echo json_encode(array(
          'status'=>'Success', 
          'responseCode'=>1 
         ) 
        ); 
       die; 
      } 
      } 
      else{ 
       echo json_encode(array('msg' => 'Something went wrong, please try again','status'=>'Error Occured','responseCode'=>0)); 
       die; 
      }    
     } 
    } 
    echo json_encode(array('msg' => 'Something went wrong, please try again','status'=>'Error Occured','responseCode'=>0)); 
    die; 
} 

を持って、私はここで間違ってやっているものを私を助けることができる、それはここで他の状態になり、私持って成功しSUBSCRIBER_IDを取得します。誰もが私がここで間違っ をやっている何私を助けることができるあなたがUSER_ID = 24とPAYMENT_TYPE =「月」とpaypal_single_paymentsテーブル内の任意のレコードを持っていない可能性がありhashcallFunction

enter code here 
public function hashCall($methodName,$nvpStr){ 
    // form header string 
    $nvpheader = $this->nvpHeader(); 

    //setting the curl parameters. 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$this->apiEndpoint); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 

    //turning off the server and peer verification(TrustManager Concept). 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_POST, 1); 

    //in case of permission APIs send headers as HTTPheders 
    if(!empty($this->authToken) && !empty($this->authSignature) && !empty($this->authTimestamp)) 
    { 
     $headers_array[] = "X-PP-AUTHORIZATION: ".$nvpheader; 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_array); 
     curl_setopt($ch, CURLOPT_HEADER, false); 
    } 
    else 
    { 
     $nvpStr = $nvpheader.$nvpStr; 
    } 
    //if USE_PROXY constant set to TRUE in Constants.php, then only proxy will be enabled. 
    //Set proxy name to PROXY_HOST and port number to PROXY_PORT in constants.php 
    if($this->useProxy) 
     curl_setopt ($ch, CURLOPT_PROXY, $this->proxyHost.":".$this->proxyPort); 

    //check if version is included in $nvpStr else include the version. 
    if(strlen(str_replace('VERSION=', '', strtoupper($nvpStr))) == strlen($nvpStr)) { 
     $nvpStr = "&VERSION=" . urlencode($this->version) . $nvpStr;  
    } 

    $nvpreq="METHOD=".urlencode($methodName).$nvpStr; 
    //setting the nvpreq as POST FIELD to curl 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$nvpreq); 

    //getting response from server 
    $response = curl_exec($ch); 

    //convrting NVPResponse to an Associative Array 
    $nvpResArray = $this->deformatNVP($response); 
    $nvpReqArray = $this->deformatNVP($nvpreq); 
    $_SESSION['nvpReqArray']=$nvpReqArray; 

    if (curl_errno($ch)) { 
     die("CURL send a error during perform operation: ".curl_error($ch)); 
    } else { 
     //closing the curl 
     curl_close($ch); 
    } 

    return $nvpResArray; 
} 
+0

フレームワークを使用している間は、ケーキの構造を常に使用するようにしてください。まず、 '$ this-> request-> data ['Model'] ['attribute']'としてデータにアクセスします。最初に見つかったものをチェック(印刷)しましたか?あなたの 'user_id'が正しいのか確認しましたか? – SrQ

答えて

0

です。 $ _POSTおよび$ userDetails 変数の内容をデバッグして、変数が空でないかどうかを調べることもできます。 私はCakeのデータ構造と$ this-> request->データを使ってpost変数にアクセスするべきだとSrQは同意します。

関連する問題