Как заблокировать повторяющиеся транзакции в CyberSource REST API - PullRequest
0 голосов
/ 29 мая 2020

Платежная система CyberSource, похоже, имеет метод предотвращения дублирования транзакций, как здесь :

Эта функция проверяет ссылочный номер продавца (MRN) успешных заказов. отправлено в течение последних 15 минут предыдущего заказа и блокирует любые повторяющиеся транзакции, отправленные с тем же MRN.

и здесь :

Код причины 104: Поля access_key и transaction_uuid для этого запроса авторизации соответствуют полям access_key и transaction_uuid другого запроса авторизации. которые вы отправили в течение последних 15 минут.

Хотя очевидно, что вам нужно использовать transaction_uuid для более ранних API, таких как KVP, неясно, какое поле использовать для REST API .

1 Ответ

0 голосов
/ 29 мая 2020

Используйте поле clientReferenceInformation> transactionId. Вы можете увидеть это в на игровой площадке с телом запроса, например:

{
  "clientReferenceInformation": {
    "code": "TC50171_3",
    "transactionId": "465465411adfasdfsdf"
  },
  "processingInformation": {
    "reconciliationId": "1234"
  },
  "paymentInformation": {
    "card": {
      "number": "4111111111111111",
      "expirationMonth": "12",
      "expirationYear": "2031"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "102.21",
      "currency": "USD"
    },
    "billTo": {
      "firstName": "John",
      "lastName": "Doe",
      "address1": "1 Market St",
      "locality": "san francisco",
      "administrativeArea": "CA",
      "postalCode": "94105",
      "country": "US",
      "email": "test@cybs.com",
      "phoneNumber": "4158880000"
    }
  }
}

Если вы включите один и тот же transactionId дважды, серверная часть скажет вам , чтобы согнуться INVALID_DATA. Я действительно ожидал, что он вернет DUPLICATE_REQUEST в качестве причины (это в их списке возможных ответов), но это лучше, чем ткнуть в глаз острой палкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...