2011-12-28 7 views
2

PHP 코드에서 BeanStream 지불 게이트웨이를 구현해야합니다. 지불 게이트웨이 구현이 새로 도입되었습니다. 아무도 데모 프로젝트 나 스크립트를 도와 줄 수 있습니까? 사전 감사.Beanstream 지불 게이트웨이 통합을위한 스크립트가 필요합니다.

+0

좀 더 자세히 설명해 주시겠습니까? 시도해 봤어? –

+0

내 웹 사이트에 신용 카드 결제가 가능한 장바구니가 있습니다. 클라이언트는 Beanstream 판매자 계정 API 키, API 비밀번호 및 서명을 제공합니다. 나는 스크립트 통합을 검색했다. 그러나 나는 찾을 수 없었다. 스크립트를 도와 줄 수 있습니까? – user1107906

답변

2

나는이 오래된 질문 알아요,하지만 난 그냥 내 코드에서 Beanstream 지불 게이트웨이를 구현하기 때문에 나는 어쨌든 공식적으로 답변을 것이라고 생각 : 당신이 Beanstream있는 계정이 있으면

당신은 수있을 것입니다 모든 요청 및 응답 필드에 대한 좋은 설명서를 제공하는 API 설명서에 액세스하십시오. PHP에서 curl 라이브러리를 사용하여 매우 쉽게 Beanstream API에 연결할 수 있습니다. 다음은 문서를 기반으로 간단한 지불을 수행하는 샘플 메소드입니다 ($ global_ccauth는 Beanstream의 응답 문자열을 포함하여 데이터베이스에 매번 저장하는 요청 정보를 포함하는 ORM 객체이지만 실제로는주의하십시오. 이 데이터베이스에 저장되기 전에 내가 같은)의 ORM 모델에서 신용 카드 번호를 당황하게 싶지 :

public static function do_payment($global_ccauth, $submitted_card_number) { 
    $payment_result = array(
     'status' => FALSE, 
     'response' => array(), 
    ); 

    // attempt to process the payment using CURL and a POST request to the Beanstream server as per Beanstream's example 
    $request = curl_init(); 

    // Get curl to POST 
    curl_setopt($request, CURLOPT_POST, 1); 
    curl_setopt($request, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($request, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // return the results instead of echoing them 
    curl_setopt($request, CURLOPT_URL, BEANSTREAM_URL); 

    // These are the transaction parameters that we will POST 
    $auth_parameters = "requestType=BACKEND"; 
    $auth_parameters .= "&merchant_id=" . BEANSTREAM_MERCHANT; 
    $auth_parameters .= "&username=" . BEANSTREAM_API_USER; 
    $auth_parameters .= "&password=" . BEANSTREAM_API_PASS; 
    $auth_parameters .= "&trnCardOwner=" . $global_ccauth->trnCardOwner; 
    $auth_parameters .= "&trnCardNumber=". $submitted_card_number; 
    $auth_parameters .= "&trnExpMonth=" . $global_ccauth->trnExpMonth; 
    $auth_parameters .= "&trnExpYear=" . $global_ccauth->trnExpYear; 
    //$auth_parameters .= "&trnCardCvd="; 
    $auth_parameters .= "&trnOrderNumber=" . $global_ccauth->trnOrderNumber ; 
    $auth_parameters .= "&trnAmount=" . $global_ccauth->trnAmount; 
    $auth_parameters .= "&ordName=" . $global_ccauth->ordName; 
    $auth_parameters .= "&ordEmailAddress=" . $global_ccauth->ordEmailAddress; 
    $auth_parameters .= "&ordPhoneNumber=" . $global_ccauth->ordPhoneNumber; 
    $auth_parameters .= "&ordAddress1=" . $global_ccauth->ordAddress1; 
    $auth_parameters .= "&ordAddress2=" . $global_ccauth->ordAddress2; 
    $auth_parameters .= "&ordCity=" . $global_ccauth->ordCity; 
    $auth_parameters .= "&ordProvince=" . $global_ccauth->ordProvince; 
    $auth_parameters .= "&ordPostalCode=" . $global_ccauth->ordPostalCode; 
    $auth_parameters .= "&ordCountry=" . $global_ccauth->ordCountry; 

    curl_setopt($request, CURLOPT_POSTFIELDS, $auth_parameters); 

    // Now POST the transaction. $txResult will contain Beanstream's response 
    $auth_result = curl_exec($request); 
    curl_close($request); 

    if ($auth_result !== FALSE) { 
     // save the raw results 
     $global_ccauth->response = $auth_result; 
     $global_ccauth->save(); 

     // parse the results 
     parse_str($auth_result, $parsed_result); 
     $payment_result['response'] = $parsed_result; 
     if (! empty($parsed_result['trnApproved']) && $parsed_result['trnApproved'] == 1) { 
      // the request was approved 
      $payment_result['status'] = TRUE; 
     } else { 
      // the request was not approved 
      // do something smart 
     } 
    } else { 
     // curl POST request failed 
     // do something smart 
    } 

    return $payment_result; 
} 

을 나는 또한 자동으로 매달 지불을 처리하기 위해 자신의 할부를 구현하고 그것을 잘 작동하는 것 같군 . API 문서에 따라 매개 변수를 조정하면됩니다.