2010-06-08 4 views
5

나는 이미 Codeigniter 응용 프로그램과 통합 된 빠른 체크 아웃을 가지고 있습니다. 이제 CC 정보를 수집하고 Paypal (백엔드를 통해)에 전달하는 원활한 페이팔을 통합하고 일단 모든 것이 승인되면 내 애플리케이션에서이를 사용자에게 보여줍니다. Paypal의 웹 사이트로 나가는 모든 일.Paypal Payflow pro library

나는 페이팔이 많은 샘플 코드를 제공한다는 것을 알고 있지만 똑같은 것을하기 위해 광고하는 수많은 제품을 가지고있다.

PHP에서이 모든 것을 처리하는 데 사용할 수있는 래퍼 라이브러리가 있습니까?

이러한 시스템으로 마이그레이션하는 데 어떤 종류의 디자인 결정이 관련되어 있습니까? SSL 인증서가 필요합니까?

답변

2

저는 CodeIgniter에 전자 상거래 사이트를 구축했으며 원활한 페이팔 통합을 수행했습니다.

내 사냥을 할 때 객체 지향적 인 wrapper가 보이지 않았지만 좋은 시도를 보았습니다.

내 솔루션은 약간 개성이있었습니다. 여기에서 PHP API를 다운로드 : https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PHP_NVP_Samples.zip

내가 application/helpers/paypal_helper.phpCallerService.php 파일을 저장하고 응용 프로그램으로 당겨 application/config/autoload.php에 추가.

이제 CallerService.phpconstants.php이 필요하므로 복사하여 붙여 넣거나 helpers 디렉토리에 constants.php 파일을 포함시켜야합니다. 방금 복사하고 붙여 넣었습니다. 그런 다음 계정에 대한 모든 상수를 구성해야합니다.

$nvp_query_string = '&PAYMENTACTION=Sale' 
       . '&AMT='.urlencode($order->total) 
       . '&CREDITCARDTYPE='.urlencode($this->input->post('credit_card_type')) 
       . '&ACCT='.urlencode($this->input->post('acct')) 
       . '&EXPDATE='.urlencode(str_pad($this->input->post('exp_date_month'), 2, '0', STR_PAD_LEFT).'20'.$this->input->post('exp_date_year')) 
       . '&CVV2='.urlencode($this->input->post('cvv2_number')) 
       . '&FIRSTNAME='.urlencode($first_name) 
       . '&LASTNAME='.urlencode($last_name) 
       . '&STREET='.urlencode($order->billing_address_1) 
       . '&CITY='.urlencode($order->billing_city) 
       . '&STATE='.urlencode($order->billing_state) 
       . '&ZIP='.urlencode($order->billing_zip) 
       . '&COUNTRYCODE=US&CURRENCYCODE=USD'; 

    $response = hash_call('doDirectPayment', $nvp_query_string); 
    if (strpos(strtoupper($response['ACK']), 'SUCCESS') !== false) { 
    // Product purchase was successful. 
    } 
    else { 
    // Product purchase was unsuccessful. 
    // The Paypal response will be in $response['ACK']. 
    // The Paypal error message to show the customer will be in $response['L_LONGMESSAGE0']. 
    } 

그것은 너무 우아한 아니지만, 확실히 잘 작동한다 : 즉이 설정 일단

, 내 코드는이처럼 보였다.

또한 SSL 인증서가 필요합니다. 단일 도메인의 경우 30 달러 정도면 구입할 수 있습니다. 처음에는 설치하기가 다소 어려우나이 단계를 건너 뛸 수는 없습니다. SSL은 고객의 컴퓨터와 서버 사이의 전송을 보호하므로 모든 서버와 라우터를 통과 할 때 CC 정보를 읽을 수 없습니다 (또는 Wi-Fi를 통해 스니핑 됨). 따라서 양식에 CC 정보를 사용하는 경우 양식이 https : //로 제출되고 보안되지 않은 http : //가 아닌지 확인하십시오.

+1

감사합니다. Alan! 이것이 내가 생각한 것입니다.이 생각에서 시작해서 미래의 CI 프로젝트에서 사용할 수있는 멋진 래퍼 라이브러리를 만드는 것이 많은 도움이 될 것입니다. 다른 도움말/힌트/할 일이없는 경우 알려 주시기 바랍니다. – Obaid

0

웹 사이트에서 중요한 데이터 (예 : 신용 카드 번호)를 사용하는 경우 SSL 인증이 필요합니다. 그들이 다른 사람의 서버 (paypal.com)에 있지 않는 한, 당신은 그것을 처리해야합니다. 그리고 당신이 말했듯이, 당신은 paypal.com에 그들을 보내고 싶지 않습니다. 그래서 네가 그것을 필요로 할 것입니다.

또한 익스프레스 체크 아웃이 이미 통합되어있는 경우 SSL 인증서를 사용해야합니다. 맞습니까?