В CyberSource, как вы используете гибкий токен кредитной карты с API платежей? - PullRequest
0 голосов
/ 30 мая 2019

Пытаясь понять, как работает CyberSource.

В CyberSource API-интерфейс гибкого токена Secure Acceptance можно использовать для токенизации кредитной карты на стороне клиента для обработки для дальнейшей обработки.

Эта часть достаточно проста.Есть много документации и несколько пакетов, которые делают это.

Как мне использовать этот токен для создания платежа с помощью CyberSource Payments API?

Все примеры, которые я нашел, показывают, как токенизировать карту на клиенте, и как списать не токенизированную карту (т.е. данные карты отправляются на сервер), но я не могу найти пример, который показывает, как использоватьГибкий токен для создания платы (или предварительной авторизации).

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

Я что-то упустил?

Я использую Node, но доволен решениями на других языках.

https://developer.cybersource.com/cybs-dev-api-ref/index.html#Flex

https://developer.visa.com/capabilities/cybersource/reference

1 Ответ

1 голос
/ 01 июня 2019

Хорошо, спасибо @rhldr за указание на эту конкретную документацию.

Ответ на этой странице https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken/FlexMicroform/GetStarted.html в разделе «Использование токена».

Примечание. В некоторых других документах (не уверен, почему у них есть много вариантов документов), таких как в этом , вообще не упоминается.

См. Раздел RESTPaymentAPI. Это должно быть предоставлено как поле customerId.

"paymentInformation": {
    "customer": {
        "customerId": "7500BB199B4270EFE05340588D0AFCAD"
    }
}

Вот минимальный пример того, как это может быть реализовано на стороне API

var cybersourceRestApi = require('cybersource-rest-client');
var configuration = require('./cybersource/config.js');

var configObject = new configuration();
var instance = new cybersourceRestApi.PaymentsApi(configObject);

var clientReferenceInformation = new cybersourceRestApi.Ptsv2paymentsClientReferenceInformation();
clientReferenceInformation.code = 'test_payment';

var processingInformation = new cybersourceRestApi.Ptsv2paymentsProcessingInformation();
processingInformation.commerceIndicator = 'internet';

var amountDetails = new cybersourceRestApi.Ptsv2paymentsOrderInformationAmountDetails();
amountDetails.totalAmount = "100.00";
amountDetails.currency = 'USD';

var orderInformation = new cybersourceRestApi.Ptsv2paymentsOrderInformation();
orderInformation.amountDetails = amountDetails;


var paymentInformation = new cybersourceRestApi.Ptsv2paymentsPaymentInformation();

// THIS IS THE IMPORTANT BIT
var customer = new cybersourceRestApi.Ptsv2paymentsPaymentInformationCustomer()
customer.customerId = token
paymentInformation.customer = customer

var request = new cybersourceRestApi.CreatePaymentRequest();
request.clientReferenceInformation = clientReferenceInformation;
request.processingInformation = processingInformation;
request.orderInformation = orderInformation;
request.paymentInformation = paymentInformation;

if (!authoriseOnly) {
    request.processingInformation.capture = true;
}

Код на основе примеров REST узла CyberSource: https://github.com/CyberSource/cybersource-rest-samples-node


Подробнее. Когда вы знаете, где искать, это объясняется в нескольких местах.

Например, перейдите к https://developer.cybersource.com/cybs-dev-api-ref/index.html#payments-process-a-payment,, разверните «ОПИСАНИЕ ПОЛЕ ЗАПРОСА» внизу и перейдите к

customer         
    .. customerId    

Уникальный идентификатор карты клиента и платежная информация.

Когда вы используете Оплату токенизации или Периодический биллинг и включаете это значение в вашем запросе, многие из полей, которые обычно требуется для авторизации или кредит становится необязательным.

ПРИМЕЧАНИЕ. При использовании токенизации платежа или периодического выставления счета значение для идентификатора клиента на самом деле платежный токен Cybersource для покупатель. Этот токен хранит информацию, такую ​​как карточка потребителя номер, чтобы его можно было использовать для оплаты счетов, периодических платежей, или единовременные платежи. Используя этот токен в запросе платежного API, продавец не должен передавать данные, такие как номер карты или Дата истечения срока действия в самом запросе.

См. «Оплата токенизацией», стр. 222 и «Периодическое выставление счетов», стр. 225.

...