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에게 데이터를 전달하고 있지 않다.
도움을 주시면 감사하겠습니다.
감사