如何在 Authorize.net PHP SDK 中设置客户 ip 地址?
how to set customer ip address in Authorize.net PHP SDK?
我在我们的网站上使用 Authorize.net PHP SDK 进行信用卡支付。目前我正在将客户账单发送到客户名字、姓氏、地址、邮编、城市、州、国家和电子邮件等信息。
我还需要发送客户 IP 地址。请提出解决方案。
当前代码的一部分如下所示:
public function authorize_card($data) {
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber($data['card_no']);
$creditCard->setExpirationDate($data['card_exp']);
$creditCard->setCardCode($data['card_cvc']);
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
//create a transaction
$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType("authCaptureTransaction");
$transactionRequestType->setAmount($data['amount']);
$transactionRequestType->setPayment($paymentCreditCard);
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName($data['bill_fname']);
$billto->setLastName($data['bill_lname']);
$billto->setAddress($data['bill_address']);
$billto->setCity($data['bill_city']);
$billto->setState($data['bill_state']);
$billto->setZip($data['bill_zip']);
$billto->setCountry($data['bill_country']);
$bill_response = $transactionRequestType->setBillTo($billto);
$request = new AnetAPI\CreateTransactionRequest();
$request->setMerchantAuthentication($this->auth);
$request->setRefId($this->refId);
$request->setTransactionRequest($transactionRequestType);
$controller = new AnetController\CreateTransactionController($request);
$response = $controller->executeWithApiResponse($this->api_mode);
if ($response != null) {
$tresponse = $response->getTransactionResponse();
if ($tresponse != null && ($tresponse->getResponseCode() == 1 || $tresponse->getResponseCode() == 253)) {
$response_array = array();
$response_array['auth_code'] = $tresponse->getAuthCode();
$response_array['auth_transaction_id'] = $tresponse->getTransId();
return $response_array;
} else {
$errors = $tresponse->geterrors();
if (is_array($errors) && !empty($errors)) {
return $errors[0]->geterrorText();
} else {
$message = $response->getMessages()->getMessage();
return $message[0]->getText();
}
}
} else {
return "Charge Credit card Null response returned";
}
}
其实我已经想通了。 autorizeNet php sdk 中提供了一种设置客户 ip 地址的方法。
方法是 setCustomerIP()
需要与 TransactionRequestType class 一起使用。
最终代码如下所示:
public function authorize_card($data) {
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber($data['card_no']);
$creditCard->setExpirationDate($data['card_exp']);
$creditCard->setCardCode($data['card_cvc']);
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
//create a transaction
$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType("authCaptureTransaction");
$transactionRequestType->setAmount($data['amount']);
$transactionRequestType->setPayment($paymentCreditCard);
//Setting customer ip address
$transactionRequestType->setCustomerIP($data['ip']);
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName($data['bill_fname']);
$billto->setLastName($data['bill_lname']);
$billto->setAddress($data['bill_address']);
$billto->setCity($data['bill_city']);
$billto->setState($data['bill_state']);
$billto->setZip($data['bill_zip']);
$billto->setCountry($data['bill_country']);
$bill_response = $transactionRequestType->setBillTo($billto);
$request = new AnetAPI\CreateTransactionRequest();
$request->setMerchantAuthentication($this->auth);
$request->setRefId($this->refId);
$request->setTransactionRequest($transactionRequestType);
$controller = new AnetController\CreateTransactionController($request);
$response = $controller->executeWithApiResponse($this->api_mode);
if ($response != null) {
$tresponse = $response->getTransactionResponse();
if ($tresponse != null && ($tresponse->getResponseCode() == 1 || $tresponse->getResponseCode() == 253)) {
$response_array = array();
$response_array['auth_code'] = $tresponse->getAuthCode();
$response_array['auth_transaction_id'] = $tresponse->getTransId();
return $response_array;
} else {
$errors = $tresponse->geterrors();
if (is_array($errors) && !empty($errors)) {
return $errors[0]->geterrorText();
} else {
$message = $response->getMessages()->getMessage();
return $message[0]->getText();
}
}
} else {
return "Charge Credit card Null response returned";
}
}
我在我们的网站上使用 Authorize.net PHP SDK 进行信用卡支付。目前我正在将客户账单发送到客户名字、姓氏、地址、邮编、城市、州、国家和电子邮件等信息。 我还需要发送客户 IP 地址。请提出解决方案。 当前代码的一部分如下所示:
public function authorize_card($data) {
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber($data['card_no']);
$creditCard->setExpirationDate($data['card_exp']);
$creditCard->setCardCode($data['card_cvc']);
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
//create a transaction
$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType("authCaptureTransaction");
$transactionRequestType->setAmount($data['amount']);
$transactionRequestType->setPayment($paymentCreditCard);
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName($data['bill_fname']);
$billto->setLastName($data['bill_lname']);
$billto->setAddress($data['bill_address']);
$billto->setCity($data['bill_city']);
$billto->setState($data['bill_state']);
$billto->setZip($data['bill_zip']);
$billto->setCountry($data['bill_country']);
$bill_response = $transactionRequestType->setBillTo($billto);
$request = new AnetAPI\CreateTransactionRequest();
$request->setMerchantAuthentication($this->auth);
$request->setRefId($this->refId);
$request->setTransactionRequest($transactionRequestType);
$controller = new AnetController\CreateTransactionController($request);
$response = $controller->executeWithApiResponse($this->api_mode);
if ($response != null) {
$tresponse = $response->getTransactionResponse();
if ($tresponse != null && ($tresponse->getResponseCode() == 1 || $tresponse->getResponseCode() == 253)) {
$response_array = array();
$response_array['auth_code'] = $tresponse->getAuthCode();
$response_array['auth_transaction_id'] = $tresponse->getTransId();
return $response_array;
} else {
$errors = $tresponse->geterrors();
if (is_array($errors) && !empty($errors)) {
return $errors[0]->geterrorText();
} else {
$message = $response->getMessages()->getMessage();
return $message[0]->getText();
}
}
} else {
return "Charge Credit card Null response returned";
}
}
其实我已经想通了。 autorizeNet php sdk 中提供了一种设置客户 ip 地址的方法。 方法是 setCustomerIP() 需要与 TransactionRequestType class 一起使用。 最终代码如下所示:
public function authorize_card($data) {
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber($data['card_no']);
$creditCard->setExpirationDate($data['card_exp']);
$creditCard->setCardCode($data['card_cvc']);
$paymentCreditCard = new AnetAPI\PaymentType();
$paymentCreditCard->setCreditCard($creditCard);
//create a transaction
$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType("authCaptureTransaction");
$transactionRequestType->setAmount($data['amount']);
$transactionRequestType->setPayment($paymentCreditCard);
//Setting customer ip address
$transactionRequestType->setCustomerIP($data['ip']);
$billto = new AnetAPI\CustomerAddressType();
$billto->setFirstName($data['bill_fname']);
$billto->setLastName($data['bill_lname']);
$billto->setAddress($data['bill_address']);
$billto->setCity($data['bill_city']);
$billto->setState($data['bill_state']);
$billto->setZip($data['bill_zip']);
$billto->setCountry($data['bill_country']);
$bill_response = $transactionRequestType->setBillTo($billto);
$request = new AnetAPI\CreateTransactionRequest();
$request->setMerchantAuthentication($this->auth);
$request->setRefId($this->refId);
$request->setTransactionRequest($transactionRequestType);
$controller = new AnetController\CreateTransactionController($request);
$response = $controller->executeWithApiResponse($this->api_mode);
if ($response != null) {
$tresponse = $response->getTransactionResponse();
if ($tresponse != null && ($tresponse->getResponseCode() == 1 || $tresponse->getResponseCode() == 253)) {
$response_array = array();
$response_array['auth_code'] = $tresponse->getAuthCode();
$response_array['auth_transaction_id'] = $tresponse->getTransId();
return $response_array;
} else {
$errors = $tresponse->geterrors();
if (is_array($errors) && !empty($errors)) {
return $errors[0]->geterrorText();
} else {
$message = $response->getMessages()->getMessage();
return $message[0]->getText();
}
}
} else {
return "Charge Credit card Null response returned";
}
}