«Транзакция не найдена» при получении платежной транзакции с Bambora - PullRequest
0 голосов
/ 05 июля 2018

Я внедряю Inline Checkout от Bambora. Шаг авторизации работает без проблем. Но когда дело доходит до получения платежа, я всегда получаю ошибку Transaction not found.

Вот что я делаю:

const options = {
    headers: { Authorization: `Basic ${ apiKey }` },
};
const { payload } = {
    amount
};
const { data } = await axios.post(`https://transaction-v1.api-eu.bambora.com/transactions/${ txnid }/capture`, payload, options);

Я также пытался сделать запрос с включенным transactionoperations:

const options = {
    headers: { Authorization: `Basic ${ apiKey }` },
};
const { payload } = {
    amount,
    transactionoperations: [{ id: txnid }],
};
const { data } = await axios.post(`https://transaction-v1.api-eu.bambora.com/transactions/${ txnid }/capture`, payload, options);

Я получаю ту же ошибку при попытке получить информацию о транзакции:

const options = {
    headers: { Authorization: `Basic ${ apiKey }` },
};
const { data } = await axios.get(`https://merchant-v1.api-eu.bambora.com/transactions/${ txnid }`, options);

Как я понимаю документация Я все делаю правильно, но не могу заставить его работать.

После просмотра собственной реализации Bamboras в PHP я не вижу никаких проблем с моим кодом.

После просмотра на панели мониторинга отчетов определенного порядка в URL-адресе не совпадает с идентификатором, который я сохранил в базе данных. Значение txnid, возвращаемое при Inline Checkout Авторизовать событие , кажется не точным.

1 Ответ

0 голосов
/ 15 июля 2018

Я был далеко от того места, где была проблема в нашем коде. С помощью поддержки Bambora и @Evelijn подталкивания в правильном направлении проблема решена.

При отправке txnid с клиента на сервер проверка обеспечила, чтобы значение содержало только цифры. То, что я пропустил, было то, что это также изменило его на Тип числа.

txnid - это строка из 18 цифр, javascript может обрабатывать числа, которые не превышают 17 цифр. Когда txnid был изменен на число, последняя цифра будет округлена до 0.

Так 123456789012345678 станет 123456789012345680.

Когда я изменил проверку, чтобы не приводить txnid к числу, все работает.

...