Как сгенерировать / извлечь токен из Cybersource Secure Acceptance API?

#rest #integration #cybersource

#rest #интеграция #киберресурс #cybersource

Вопрос:

Я попытался использовать предоставленные тестовые данные из документации Cybersource для создания токена для тестовой панели. Однако при попытке сделать это (предполагая, что это был REST Api) это приводит к ошибке «403 — Запрещено». Документация ограничена, поскольку она не дает много информации об API, кроме следующей:

 (Test) Endpoint: https://testsecureacceptance.cybersource.com/silent/token/create
  

Запрос на создание отдельного платежного токена:

 reference_number=123456789
transaction_type=create_payment_token
currency=usd
amount=100.00
locale=en
access_key=e2b0c0d0e0f0g0h0i0j0k0l0m0n0o0p3
profile_id=0FFEAFFB-8171-4F34-A22D-1CD38A28A384
transaction_uuid=02815b4f08e56882751a043839b7b481
signed_date_time=2013-07-11T15:16:54Z
signed_field_names=comma separated list of signed fields
unsigned_field_names=comma separated list of unsigned fields
signature=WrXOhTzhBjYMZROwiCug2My3jiZHOqATimcz5EBA07M=
payment_method=card
card_type=001
card_number=4111111111111111
card_expiry_date=12-2022
card_cvn=005
bill_to_forename=Joe
bill_to_surname=Smith
bill_to_email=joesmith@example.com
bill_to_address_line1=1 My Apartment
bill_to_address_city=Mountain View
bill_to_address_postal_code=94043
bill_to_address_state=CA
bill_to_address_country=US
  

Это REST или SOAP API? Как это можно протестировать в Postman? Я протестировал, чтобы проверить, работает ли любой из них, и не увенчался успехом. Также нет информации о том, что включать в заголовок, так что это немного озадачивает.

Пример POST-теста, который я пытаюсь:

 POST https://testsecureacceptance.cybersource.com/silent/token/create
Content-Type:application/json
Accept:application/json

{
reference_number:123456789
transaction_type:create_payment_token
currency:usd
amount:100.00
locale:en
access_key:e2b0c0d0e0f0g0h0i0j0k0l0m0n0o0p3
profile_id:0FFEAFFB-8171-4F34-A22D-1CD38A28A384
transaction_uuid:02815b4f08e56882751a043839b7b481
signed_date_time:2019-03-07T06:16:54Z
signed_field_names:profile_id,access_key,transaction_uuid,signed_field_names,unsigned_field_names,signed_date_time,locale,transaction_type,reference_number,auth_trans_ref_no,amount,currency,card_type,card_number,card_expiry_date,card_cvn,payment_method,bill_to_forename,bill_to_surname,bill_to_email,bill_to_address_line1,bill_to_address_city,bill_to_address_postal_code,bill_to_address_state,bill_to_address_country
unsigned_field_names:
signature:WrXOhTzhBjYMZROwiCug2My3jiZHOqATimcz5EBA07M=
payment_method:card
card_type:001
card_number:4111111111111111
card_expiry_date:12-2022
card_cvn:005
bill_to_forename:Joe
bill_to_surname:Smith
bill_to_email:joesmith@example.com
bill_to_address_line1:1 My Apartment
bill_to_address_city:Mountain View
bill_to_address_postal_code:94043
bill_to_address_state:CA
bill_to_address_country:US
}
  

Ответ №1:

«Это REST или SOAP API?» URL, https://testsecureacceptance.cybersource.com/silent/token/create , используется для безопасного API проверки принятия. API проверки безопасного принятия не является ни SOAP API, ни REST API. Он предназначен для использования в качестве сообщения HTML-формы из браузера клиента.

Если ваша цель — использовать REST API из браузера, тогда вы захотите использовать гибкий токен безопасного принятия, описанный здесь.

Если ваша цель — использовать Secure Acceptance Checkout API, полная документация для этого находится здесь.

«Как это можно протестировать в Postman?» Поскольку это должен быть не вызов REST API, а сообщение HTML-формы и HTML-ответ, у вас может быть ограниченный успех с Postman. Например, даже если вы получите запрос для успешной работы, ответом будет HTML-документ, а не JSON.

Одна из проблем, которую я вижу, заключается в том, что вы используете пример подписи, и это у вас не сработает. Убедитесь, что вы следуете документации о том, как создать свою подпись, а также установите подписанные и неподписанные поля.

Комментарии:

1. Спасибо за информацию. Однако есть ли способ использовать страницу токенизации безопасного принятия, размещенную в CyberSource, на которую можно перенаправить с исходной платформы?

2. Да, я думаю, вы хотите, чтобы API проверки безопасного приема, размещенный , был задокументирован здесь . Смотрите страницу 51 для всех конечных точек. Если вы хотите только создать токен, то конечной точкой тестирования является testsecureacceptance.cybersource.com/token/create

3. При попытке токенизации с помощью тестовой конечной точки я сталкиваюсь со следующей ошибкой: «Обнаружена системная ошибка. Это поле недопустимо или отсутствует. Пожалуйста, обратитесь в службу поддержки клиентов.: ots_profileid’. Есть ли у вас какое-либо представление о том, как это решить?

4. Вам нужно будет связаться со службой поддержки CyberSource и попросить их включить токенизацию в вашей тестовой учетной записи. По умолчанию он не включен.

Ответ №2:

@J.J. — ошибка, с которой вы столкнулись — «Это поле недопустимо или отсутствует.Пожалуйста, обратитесь в службу поддержки клиентов.: ots_profileid’ «. Сообщает вам, что у вас отсутствует (или у вас неверный) ProfileID в полезной нагрузке вашего запроса. Система не знает, какой профиль использовать при обработке этого запроса.