else {
$extra->amount = $amount;
$message = '';
- if (AN_APPROVED == authorize_action($order, $message, $extra, AN_ACTION_CREDIT)) {
+ $success = authorize_action($order, $message, $extra, AN_ACTION_CREDIT);
+ if (AN_APPROVED == $success || AN_REVIEW == $success) {
if (empty($CFG->an_test)) {
if (empty($extra->id)) {
$table->data[] = array("<b><font color=red>$strs->error:</font></b>", 'insert record error');
case AN_STATUS_AUTHCAPTURE:
if (authorize_settled($order)) {
- if ($order->paymentmethod == AN_METHOD_CC && $canmanage) {
- $ret->actions = array(ORDER_REFUND);
+ if ($canmanage) {
+ if (($order->paymentmethod == AN_METHOD_CC) || ($order->paymentmethod == AN_METHOD_ECHECK && !empty($order->refundinfo))) {
+ $ret->actions = array(ORDER_REFUND);
+ }
}
$ret->status = 'settled';
}
$transid = $data[$csvfields['Transaction ID']];
$transtype = $data[$csvfields['Transaction Type']];
$transstatus = $data[$csvfields['Transaction Status']];
+ $reftransid = $data[$csvfields['Reference Transaction ID']];
$settlementdate = strtotime($data[$csvfields['Settlement Date/Time']]);
if ($transstatus == 'Approved Review' || $transstatus == 'Review Failed') {
continue;
}
+ if (!empty($reftransid) && $transstatus == 'Settled Successfully' && $transtype == 'Credit') {
+ if ($refund = get_record('enrol_authorize_refunds', 'transid', $reftransid)) {
+ $order = get_record('enrol_authorize', 'id', $refund->orderid);
+ if (AN_METHOD_ECHECK == $order->paymentmethod) {
+ $refund->status = AN_STATUS_CREDIT;
+ $refund->settletime = $settlementdate;
+ update_record('enrol_authorize_refunds', $refund);
+ $updated++;
+ }
+ }
+ else {
+ $ignored++;
+ $ignoredlines .= $reftransid . ": Not our business, in refunds\n";
+ continue;
+ }
+ }
+
if (! ($transstatus == 'Settled Successfully' && $transtype == 'Authorization w/ Auto Capture')) {
$ignored++;
$ignoredlines .= $transid . ": Not settled\n";