当前位置: 首页 > 知识库问答 >
问题:

如何在授权中设置客户ip地址。net PHP SDK?

卜盛
2023-03-14

我正在使用授权。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";
		}
}

共有1个答案

秦才
2023-03-14

事实上我已经弄明白了。autorizeNet php sdk中给出了一种设置客户ip地址的方法。方法是setCustomerIP(),需要与TransactionRequestType类一起使用。最终代码如下所示:

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";
		}
}
 类似资料:
  • 我必须在ConsumerGroup中设置zookeeper IP地址,而不是Kafka-Host IP地址。因为我将复制因子设置为3,并且创建了3个代理。因此,如果一个主机出现故障,那么另一个主机可以接管。 当我尝试将zookeeper的IP地址而不是Kafka-Host的IP地址放在ConsumerGroup中时,它不会接收到任何来自生产者API的消息。 我希望这样,如果我在ConsumerGr

  • 问题内容: 通过使用strace和ifconfig,我发现可以通过以下方式设置IP地址: 但是我对这种解决方案不是很满意: 这样做的“正确”方法是什么? 问题答案: 没有魔术+2的IPv4的“正确”方式: 要使用IPv6,请将其强制转换为

  • 问题内容: 我正在尝试开发一个Java Web应用程序(Servlet),该服务器需要获取客户端IP地址。 以下是我到目前为止的代码: 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在这种情况下,我

  • 问题内容: 我正在尝试在Laravel中获取客户端的IP地址。 使用可以很容易地在PHP中获得客户端的IP 。在核心PHP中它可以正常工作,但是当我在Laravel中使用相同的东西时,它将返回服务器IP而不是访问者的IP。 问题答案: 查看Laravel API: 在内部,它使用Symfony Request对象中的方法:

  • 问题内容: 我想知道我们如何知道套接字(java)中服务器端客户端的IP地址。假设有一个服务器“ S”和两个客户端“ A”和“ B”。客户端A向我(服务器)发送一些信息,客户端B向我(服务器)发送一些其他信息。我必须将来自A和B的信息存储在不同表中的数据库中。如何区分客户端A和客户端B的请求? 问题答案: 每个套接字都有一个方法来返回与其连接的客户端的IP地址。

  • 问题内容: 我试图通过一个简单的SQL语句获取客户端的IP地址。我不想使用PHP或其他技术。仅纯SQL。当我使用 我懂了 当我使用 我懂了 但是我如何获得普通IP?非常感谢。 问题答案: 您将仅获得与MySQL通信的客户端进程的IP地址。假设这是您想要的: 将为您提供连接到当前连接上的mysql服务器的主机名(如果未启用名称解析,通常为IP地址)。