Authorize.Net Silent Post не отвечает должным образом - вообще никаких данных - PullRequest
0 голосов
/ 07 декабря 2011

Я пытаюсь настроить молчаливый ответ для моих живых тележек электронной коммерции auth.net.Silent Post от Auth.net происходит, но я не получаю никаких данных вообще.Я написал быстрый сценарий, просто чтобы регистрировать ответы от транзакций, чтобы я мог видеть, что отправляет auth.net.

$f = fopen('log.txt', 'a');

fwrite($f, 'new request: ');
fwrite($f, date('Y-m-d H:i'));
fwrite($f, ' ' . $_SERVER['REQUEST_METHOD']. ' ');
fwrite($f, ' ' . $_SERVER['QUERY_STRING']. ' ');
fwrite($f, ' ' . $_SERVER['REQUEST_URI']. ' ');

fwrite($f, print_r(http_get_request_headers(),1));
fwrite($f, print_r($_GET,1));

Просто мило, должен ли я получить результат правильно?Обратите внимание на печать GET, которую я добавил, потому что это набор результатов:

 new request: 2011-12-06 14:54 GET      /authSilentResponse/ Array (
     [Accept] => */*
     [Host] => myhost.mydomain.com
     [Connection] => Close ) Array ( )

Так что вместо сообщения, в котором все говорится, что это должно быть, я получаю запрос GET ...

У кого-нибудь есть идеи, почему это не будет выглядеть как POST с данными?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

В вашем аккаунте должна быть неправильная конфигурация.Silent Post НЕ отправляет вам данные.Просто отправьте как указано.Вы, вероятно, уже проверили, но на всякий случай:

  1. Убедитесь, что URL-адрес ответа по умолчанию не установлен, если вы не используете функцию
  2. Проверьте, чтобы убедиться, что ваши записи журнала соответствуютк фактическим сделкам.Время от времени «плохие люди» пингуют наши молчаливые посты.По этой причине мы добавляем проверку на запросы GET и отбрасываем их
  3. Попробуйте самостоятельно опубликовать URL-адрес и print_r ($ _ POST).Убедитесь, что это работает.
  4. Добавьте MD5-хэш в интерфейсе Auth.net, запустите транзакцию и посмотрите, получаете ли вы значение.
0 голосов
/ 07 декабря 2011

Я думаю, что вы где-то что-то делаете не так, как Silent Post всегда отправляет результаты транзакции, используя запрос POST Попробуйте код, который я написал и посмотрите, будет ли он работать лучше для вас. Если это так, вы можете сравнить свой код с ним и посмотреть, где находится потенциальная проблема.

Вот модифицированная версия, которую вы можете использовать для тестирования:

<?php
// Get the subscription ID if it is available. 
// Otherwise $subscription_id will be set to zero.
$subscription_id = (int) $_POST['x_subscription_id'];

// Check to see if we got a valid subscription ID.
// If so, do something with it.
if ($subscription_id)
{
    // Get the response code. 1 is success, 2 is decline, 3 is error
    $response_code = (int) $_POST['x_response_code'];

    // Get the reason code. 8 is expired card.
    $reason_code = (int) $_POST['x_response_reason_code'];

    if ($response_code == 1)
    {
        // Approved!

        // Some useful fields might include:
        // $authorization_code = $_POST['x_auth_code'];
        // $avs_verify_result  = $_POST['x_avs_code'];
        // $transaction_id     = $_POST['x_trans_id'];
        // $customer_id        = $_POST['x_cust_id'];

        $result = 'approved';
    }
    else if ($response_code == 2)
    {
        // Declined

        $result = 'declined';
    }
    else if ($response_code == 3 && $reason_code == 8)
    {
        // An expired card

        $result = 'expired';
    }
    else 
    {
        // Other error

        $result = 'error';
    }

    $f = fopen('log.txt', 'a');

    fwrite($f, 'new request: ');
    fwrite($f, date('Y-m-d H:i'));
    fwrite($f, ' ' . $_SERVER['REQUEST_METHOD']. "\n\n");
    fwrite($f, ' ' . $_SERVER['QUERY_STRING']. "\n\n");
    fwrite($f, ' ' . $_SERVER['REQUEST_URI']. "\n\n");

    fwrite($f, ' ' . $result. "\n\n");

    fwrite($f, print_r(http_get_request_headers(),1));
    fwrite($f, print_r($_REQUEST,1));
}
?>

Вы можете проверить это, используя эту форму :

<form action="http://www.yourdomain.com/silent-post.php" method="post">
    <input type="hidden" name="x_response_code" value="1"/>
    <input type="hidden" name="x_response_subcode" value="1"/>
    <input type="hidden" name="x_response_reason_code" value="1"/>
    <input type="hidden" name="x_response_reason_text" value="This transaction has been approved."/>
    <input type="hidden" name="x_auth_code" value=""/>
    <input type="hidden" name="x_avs_code" value="P"/>
    <input type="hidden" name="x_trans_id" value="1821199455"/>
    <input type="hidden" name="x_invoice_num" value=""/>
    <input type="hidden" name="x_description" value=""/>
    <input type="hidden" name="x_amount" value="9.95"/>
    <input type="hidden" name="x_method" value="CC"/>
    <input type="hidden" name="x_type" value="auth_capture"/>
    <input type="hidden" name="x_cust_id" value="1"/>
    <input type="hidden" name="x_first_name" value="John"/>
    <input type="hidden" name="x_last_name" value="Smith"/>
    <input type="hidden" name="x_company" value=""/>
    <input type="hidden" name="x_address" value=""/>
    <input type="hidden" name="x_city" value=""/>
    <input type="hidden" name="x_state" value=""/>
    <input type="hidden" name="x_zip" value=""/>
    <input type="hidden" name="x_country" value=""/>
    <input type="hidden" name="x_phone" value=""/>
    <input type="hidden" name="x_fax" value=""/>
    <input type="hidden" name="x_email" value=""/>
    <input type="hidden" name="x_ship_to_first_name" value=""/>
    <input type="hidden" name="x_ship_to_last_name" value=""/>
    <input type="hidden" name="x_ship_to_company" value=""/>
    <input type="hidden" name="x_ship_to_address" value=""/>
    <input type="hidden" name="x_ship_to_city" value=""/>
    <input type="hidden" name="x_ship_to_state" value=""/>
    <input type="hidden" name="x_ship_to_zip" value=""/>
    <input type="hidden" name="x_ship_to_country" value=""/>
    <input type="hidden" name="x_tax" value="0.0000"/>
    <input type="hidden" name="x_duty" value="0.0000"/>
    <input type="hidden" name="x_freight" value="0.0000"/>
    <input type="hidden" name="x_tax_exempt" value="FALSE"/>
    <input type="hidden" name="x_po_num" value=""/>
    <input type="hidden" name="x_MD5_Hash" value="A375D35004547A91EE3B7AFA40B1E727"/>
    <input type="hidden" name="x_cavv_response" value=""/>
    <input type="hidden" name="x_test_request" value="false"/>
    <input type="hidden" name="x_subscription_id" value="365314"/>
    <input type="hidden" name="x_subscription_paynum" value="1"/>
    <input type="submit"/>
</form>
...