我们使用authorize.net作为支付网关,我们需要在单笔交易中将金额发送给两个不同的商家。为了实现它,我们使用以下代码。
<?php
require_once 'anet_php_sdk/AuthorizeNet.php';
define("AUTHORIZENET_API_LOGIN_ID", "12345");
define("AUTHORIZENET_TRANSACTION_KEY", "abcde");
define("AUTHORIZENET_SANDBOX", true);
$sale = new AuthorizeNetAIM;
$amount = $_POST['ordertotal'];
$bill_to_cardholder = $_POST['bill_to_cardholder'];
$bill_to_card_number = trim($_POST['bill_to_card_number']);
$bill_to_cvv2 = $_POST['bill_to_cvv2'];
$exp_date = $_POST['bill_to_exp_month'].$_POST['bill_to_exp_year'];
//add information to authorize
$sale->first_name = $_SESSION['bill_to_first_name'];
$sale->last_name=$_SESSION['bill_to_last_name'];
$response1 = $sale->authorizeOnly($amount,$bill_to_card_number,$exp_date);
if ($response1->approved) {
define("AUTHORIZENET_API_LOGIN_ID", "678910"); define("AUTHORIZENET_TRANSACTION_KEY", "fghij");
$response2 = $sale->authorizeOnly($amount,$bill_to_card_number,$exp_date);
echo "<pre>"; print_r($response2); exit;
}
?>
但问题是第一个交易成功完成,第二个交易被拒绝。因为,一旦定义了常量,我们就无法通过PHP脚本覆盖。我们已经尝试为应该传递给authorize.net的参数定义变量,例如$AUTHORIZENET_API_LOGIN_ID
和$AUTHORIZENET_TRANSACTION_KEY
,但authorize.net不接受正常变量。有人可以提供解决方案如何使用authorize.net在单笔交易中将金额转移到两个不同的商家?感谢。