6

我如何在authorize.net中找到用户进行的交易是已结算还是未结算。我正在使用AIM。我想通过编码。当交易完成时,我找不到交易状态。但我想知道它是进行已结算还是未结算的交易。提前致谢。

4

5 回答 5

6

您无法通过编码获取此信息,因为没有 API Authorize.Net 提供允许这样做。它只能通过控制面板完成。当您处理交易并获得批准时,您可以假设交易未结算。交易通常在太平洋时间午夜左右每天结算一次。之后,您可以假设交易已结算。

于 2010-07-06T12:13:54.223 回答
6

自 2011 年 3 月 16 日起,authorize.net 发布了对 Transaction Details API 的两个新调用,getUnsettledTransactionList 和 getBatchStatistics。

getUnsettledTransactionList 每次调用最多返回 1,000 个未结算的交易,返回最近的交易。响应中返回的信息将与 getTransactionList 调用中返回的信息相同。

getBatchStatistics 返回单个批次的批次统计信息,如结算状态和时间、收费计数、拒绝计数等。

有关更多信息,请查看 XML 指南和 SOAP 指南。

在撰写本文时,PHP SDK 的版本为 1.1.6,并且没有在 TD api 中内置此功能,但是如果您查看上面提供的文档以及此示例页面,您会看到获取列表未结算的交易实际上是可能的。

从这个页面

于 2011-09-20T00:38:19.737 回答
2

我已经关注了这个链接http://developer.authorize.net/api/transaction_details/并从那里得到这个代码,

<?php
require_once "anet_php_sdk/AuthorizeNet.php";
define("AUTHORIZENET_API_LOGIN_ID", "YOURLOGIN");
define("AUTHORIZENET_TRANSACTION_KEY", "YOURKEY");

// Get Settled Batch List
$request = new AuthorizeNetTD;
$response = $request->getSettledBatchList();
echo count($response->xml->batchList->batch) . " batches\n";
foreach ($response->xml->batchList->batch as $batch) {
    echo "Batch ID: " . $batch->batchId . "\n";
}

// Get Transaction Details
$transactionId = "12345";
$response = $request->getTransactionDetails($transactionId);
echo $response->xml->transaction->transactionStatus;

但我收到此错误消息。

由于身份验证值无效,用户身份验证失败。

于 2013-12-18T07:03:45.153 回答
1

正如@cwd 的回答中所建议的那样,了解交易是否已结算的最可靠方法是调用getUnsettledTransactionListor getBatchStatistics,但您也可以检查您的交易截止时间设置为。

登录到您的 Authorize.net 管理员,点击账户 > 交易截止时间

我的帐户设置为太平洋夏令时间下午 4:00,因此您可以将交易时间与截止时间进行比较。就像是:

$createdTime = new DateTime($charge['createdTime']);

// starting point for settle time
$settleTime = new DateTime($createdTime->format('Y-m-d') . ' 16:00:00');
$now = new DateTime();

// if card was charged after settle time for 
// that day, move settle time to the next day
if ($createdTime > $settleTime) {
    $settleTime->add(new DateInterval('P1D'));
}

if ($now > $settleTime) $settled = true;
于 2016-08-31T22:58:53.140 回答
0

http://developer.authorize.net/api/transaction_details/是您正在寻找的 API。

于 2012-11-28T15:52:39.897 回答