2013-07-29 93 views
0

您好我想在我的Zend FW 1應用程序中集成PayPal API。使用Zend Framework的PayPal API

我的代碼是

$this->setHeaders(
      array(
       'Authorization' => '<REMOVED>', 
       'content-type' => 'application/json', 
      ) 
     ); 
     $this->setMethod('POST'); 
     $this->setParameterGet('payer_id', $company_id); 
     $this->setParameterGet('number', $cc_number); 
     $this->setParameterGet('type', $type); 
     $this->setParameterGet('exp_month', $exp_month); 
     $this->setParameterGet('exp_year', $exp_year); 
     $this->setParameterGet('payer_id', $company_id); 
     $this->setParameterGet('first_name', $first_name); 
     $this->setParameterGet('last_name', $last_name); 
     return $this->request(); 

調試表明,該

 string(364) "POST /v1/vault/credit-card?number=4417119669820331&type=visa&exp_month=05&exp_year=2019&first_name=john&last_name=travolta HTTP/1.1 
Host: api.sandbox.paypal.com 
Connection: close 
Accept-encoding: gzip, deflate 
User-Agent: Zend_Http_Client 
Authorization: Bearer <REMOVED> 
content-type: application/json 
Content-Length: 0 

但是,當我跑我得到來自PayPal 這個錯誤 「不允許的方法」

在哪裏的問題?我做POST,他說這是不允許的?允許的方法是POST,GET,HEAD,OPTIONS。我在哪裏犯錯誤? 我想存儲信用卡

+0

你會想'setParameterPost()'而不是'setParameterGet()'。 –

+0

然後我得到「415不支持的媒體類型」 – Squirll

+0

使用此標頭'Accept:application/json'並將數據作爲json字符串發送。您可能需要使用'rawData' [method](http://framework.zend.com/manual/1.12/en/zend.http.client.advanced.html)。 –

回答

0

PayPal API需要嚴格使用正確的請求。 這包括有效的Accept: application/json標題和有效的 正在發送的json內容。 您不能設置content-type不發送任何內容

在這種情況下Zend_HTTP_Client's rawData()應該被使用。