2012-11-02 5 views
2

안녕하십니까, 저는 케이크 조각에 익숙하지 만 이제는 cakephp의 기초가되었습니다. 이제 cakephp와의 페이팔 통합을 만들고 있지만 페이팔에 가치를 전달할 수 없습니다. 내 코드를 보여줄거야. 내가 틀린 일을하고 있는지 말해줘.cakephp 2.0 페이팔과의 통합

function paypal() 
{ 
    if($this->request->is('post')) 
    { 
     echo $item_name_1=$this->request->data['Choose']['item_name_1']; 
     echo"<br>"; 
     echo $amount_1=$this->request->data['Choose']['amount_1'];echo"<br>"; 
     echo $item_name_2=$this->request->data['Choose']['item_name_2'];echo"<br>"; 
     echo $amount_2=$this->request->data['Choose']['amount_2'];echo"<br>"; 
     echo $cmd=$this->request->data['Choose']['cmd'];echo"<br>"; 
     echo $business=$this->request->data['Choose']['business'];echo"<br>"; 
     echo $upload=$this->request->data['Choose']['upload'];echo"<br>"; 
     echo $currency_code=$this->request->data['Choose']['currency_code'];echo"<br>"; 
     echo $item_number_1=$this->request->data['Choose']['item_number_1'];echo"<br>"; 
     echo $item_number_2=$this->request->data['Choose']['item_number_2'];echo"<br>"; 
     $this->redirect('https://www.paypal.com/cgi-bin/webscr?cmd='.$cmd.'&upload='.$upload.'&business='.$business. 
         '&currency_code='.$currency_code.'&item_number_1='.$item_number_1.'&item_name_1='.$item_name_1. 
         '&'.'amount_1='.$amount_1.'&item_number_2='.$item_number_2.'&item_name_2='.$item_name_2.'&'.'amount_2='.$amount_2); 

    } 
} 

내 컨트롤러 (숨겨진 필드를 포함) 모든보기 값을 전달 (모든 값이 제대로 표시된다)와 페이팔 사이트로 리디렉션하고 있습니다. 여기에 여러 값을 보내고있다하지만이 같은 오류를 받고 있어요 : 내가 페이팔에 도달하고 corephp 다음 값에 동일한 코드를 작성하고 모든 것이 제대로 작동하면 난 곳

This recipient is currently unable to receive money. 

가, 나에게 알려주세요 잘못되었다. 페이팔 사이트에 게시되는

function paypal(){ 
    $this->set('paypalData', $this->request->data['Choose']); 
} 

을 ... 다음 (보기에)는 형태를 만들 :

+0

기존 URL을 'https://www.sandbox.paypal.com/cgi-bin/webscr'로 바꾸면 솔루션을 찾은 다음 paypal에 도달하지만이 값을 원래 'https://www.paypal.com/cgi-bin/webscr'그러면 동일한 오류가 다시 표시됩니다. 이것을 해결하는 방법, 도와주세요. – hardy

+1

나는 freshers을 위해 그것을했다. wanaa는 u가 paypal과 통합을 원한다면 sandbox paypal에서 먼저 계정을 만든다. 그것은 무료이며, UR 계정으로 로그인 한 후 여기에서 UR 코드를 테스트하고 'TestAccounts'링크를 클릭하여 구매자 계정 및 판매자 계정을 만들 수 있습니다. 당신이 페이팔로 물건을 구입 가져 왔을 때, 그때 구매자 페이팔 ID와 비밀 번호로 로그인하고 그 다음 단계는 유료 버튼을 클릭하고 당신은 페이팔 계정에서 볼 수있는 귀하의 거래를 회피 reciept를 얻을 것이다 . 그게 .. 좋은 하루 보내. – hardy

답변

0

우선 해제, 당신은 컨트롤러에 코드를 준비해야

//file: Views/ControllerName/paypal.ctp 
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_xclick"> 
<input type="hidden" name="business" value="<?php echo $paypalData['business']; ?>"> 
<input type="hidden" name="amount" value="<?php echo $paypalData['business']; ?>"> 
<input type="hidden" name="item_name_1" value="<?php echo $paypalData['item_name_1']; ?>"> 
<input type="hidden" name="item_number_1" value="<?php echo $paypalData['item_number_1']; ?>"> 
<input type="hidden" name="amount_1" value="<?php echo $paypalData['amount_1']; ?>"> 
<input type="hidden" name="currency_code" value="<?php echo $paypalData['currency_code']; ?>"> 
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

사용자가 버튼을 클릭하면보다 안정적인 (그리고 오른쪽 : D) PayPal로 이동합니다. 값이 url_encoded가 아니거나 너무 길어질 수 있기 때문에 리디렉션 할 URL이 여러 가지 방법으로 실패 할 수 있습니다.

두 번째 : www.paypal.com을 사용 중이므로 오류가 발생할 가능성이 큽니다. 대신 의 www.sandbox.paypal.com

셋째, 내가보기를 용이하게하기 위해 위의 HTML을 복사하면 적절한 HTML 서식을 보장하기 위해 내부보기 양식 도우미를 사용한다.

넷째 : 컨트롤러 내부의 ECHOing 동작이 잘못되었습니다. 특히, 출력 후 리디렉션하는 경우. 출력이 브라우저로 전송되면 리디렉션이 작동하지 않습니다.

희망이 있으면 올바른 방향으로 갈 수 있습니다.