Хорошо, спасибо @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.