NoneAccept .js в песочнице - E_WC_21: аутентификация пользователя не удалась

Попытка выработать accept.js вместо устаревшего метода для платежей authorize.net. Не делает ничего сложного, но не может пройти сообщение об ошибке аутентификации при использовании песочницы

Вход в учетную запись песочницы для генерации ключей... они называются немного иначе, чем примеры кода. Так что я могу быть идиотом.

ОК, apiLoginID - очевидно... Код ниже вызывает data-clientKey. Не уверен на 100%, какой из этих двух вариантов ниже. Я пробовал оба. Та же ошибка с обоими.

Идентификатор входа API: 4CLLpD------

Ключ транзакции: 9628s6xCSh------

Ключ: ------A4D932A4AFED546DE55E4D04C16CA66549915AFDC4FBA3A1665E271A2FB48A7A34394843A47BC170FFB4A5B99EDD17B75D99942E4E7F7133C2E1------

<script type="text/javascript"
    src="https://jstest.authorize.net/v3/AcceptUI.js"
    charset="utf-8">
</script>

<form id="paymentForm"
    method="POST"
    action="mysite.com/beta-account/order-receipt.php" >
    <input type="hidden" name="dataValue" id="dataValue" />
    <input type="hidden" name="dataDescriptor" id="dataDescriptor" />
    <button type="button"
        class="AcceptUI btn-success btn-lg"
        data-billingAddressOptions='{"show":true, "required":false}' 
        data-apiLoginID="4CLLpDX----" 
        data-clientKey="9628s6xCShc-----"
        data-acceptUIFormBtnTxt="Submit" 
        data-acceptUIFormHeaderTxt="Card Information" 
        data-responseHandler="responseHandler">Pay
    </button>
</form>

<script type="text/javascript">

function responseHandler(response) {
    if (response.messages.resultCode === "Error") {
        var i = 0;
        while (i < response.messages.message.length) {
            console.log(
                response.messages.message[i].code + ": " +
                response.messages.message[i].text
            );
            i = i + 1;
        }
    } else {
        paymentFormUpdate(response.opaqueData);
    }
}

function paymentFormUpdate(opaqueData) {
    document.getElementById("dataDescriptor").value = opaqueData.dataDescriptor;
    document.getElementById("dataValue").value = opaqueData.dataValue;
    document.getElementById("paymentForm").submit();
}
</script>

Сейчас на странице order-receive.php ничего нет. Я просто пытаюсь получить пост, чтобы сделать это далеко и показать мне дамп всего, что публикуется на странице, так что даже когда я получу эту работу, у меня все еще есть пути.

Когда я захожу на страницу оплаты, нажимаю кнопку "Оплатить", заполняю форму кредитной карты, нажимаю "отправить" … она никуда не денется. Он остается на странице, и консоль сообщает: "E_WC_21: аутентификация пользователя не удалась из-за неверных значений аутентификации".

Это превратилось в еще одну разочаровывающую вещь после того, как я потянул половину моих волос за документами authorize.net о том, что мне нужно делать с окончанием срока службы MD5… из которых я никогда не мог заставить работать замену реле SIM-карты. метод ответа, который использовался. response.js кажется довольно простым в качестве замены, и я застрял здесь тоже.

Что мне попробовать дальше?

2 ответа

Для получения data-clientKey вам нужно перейти сюда. Пожалуйста, смотрите прикрепленный скриншот.

Скриншот

Хорошо, я думаю, что нашел проблему... Есть разница между идентификатором входа API, ключом транзакции и ключом клиента. Это не сразу очевидно в некоторых документах...

Другие вопросы по тегам