2017-02-21 8 views
0

omnipay-authorizenet AuthorizeNet_CIM을 사용하여 지불 프로세서를 설정하려고합니다. 이것에 대한 많은 문서가 아닙니다.omnipay - AuthorizeNet_CIM

단계 1) 게이트웨이 객체를 성공적으로 만들고 authorize.net 샌드 박스 서버에 요청할 수 있습니다.

단계 2)은 나중에 $ Token-billing ($ gateway-> createCard())을 사용하여 "카드를 만듭니다". 이것은 성공적입니다. 일반 Omnipay 토큰 대금 청구 문서에서

:

"... createCard ($ 옵션) - 향후 거래에 사용할 수있는 cardReference을 포함하는 응답 객체를 반환 ..."

위의 createCard() 응답 객체에 특정 'cardReference'가 표시되지 않습니다.

그래서 $ cardRef 배열을 만들고 반환 된 응답 인 CustomerProfileId 및 CustomerPaymentProfileId를 가져옵니다.

function create_transaction($cardRef,$amount,$description,$invoice_number){ 

global $status, $gateway; 

try { 

// Send purchase request 
$response = $gateway->purchase(
    array(
     'cardReference' => $cardRef ,    
     'amount' => $amount, 
     'currency' => 'USD',     
     'description' => $_POST['description'], 
     'transactionId' => $invoice_number 

    ) 
)->send();   
if ($response->isSuccessful()) { 

    // Payment was successful  
    $status.='Success: '.$response->getMessage(); 

} elseif ($response->isRedirect()) { 

    // Redirect to offsite payment gateway 
    $response->redirect(); 

} else {   

    // Payment failed 
    $status.='Transaction Failure: '.$response->getMessage(); 

}  

} catch (Exception $e) { 

    $status.='<strong>Error:</strong> '.$e->getMessage(). "<br/>"; 

}  

} 

구입은 실패하고 내가 응답 볼 때 요청이 cardReference을 채우기하지 않는 것 같다 객체 :

$profileResult['customerProfileId']=$response->getCustomerProfileId(); 

$profileResult['paymentProfileId']=$response->getCustomerPaymentProfileId(); 

3 단계) 실패 구매를 생성하는 기능입니다 개체.

[cardReference] => Omnipay\AuthorizeNet\Model\CardReference Object 
(
[customerProfileId:Omnipay\AuthorizeNet\Model\CardReference:private] => 
[paymentProfileId:Omnipay\AuthorizeNet\Model\CardReference:private] => 
[shippingProfileId:Omnipay\AuthorizeNet\Model\CardReference:private] => 
) 

나는 분명히 구매 방법 올바른 cardReference에게 데이터를 전달하고 있지 않다.

도움을 주시면 감사하겠습니다.

감사

답변

0

내가 분명히 문서화되지 않은 Omnipay 방법을 사용하는 데 필요한;

$response->getCardReference(); 

내 create_transaction() 함수에 전달할 cardReference 객체를 가져 오려면

모두 수정되었습니다.

감사합니다.