Я знаю, что при создании способа оплаты я могу использовать failOnDuplicatePaymentMethod
для блокировки дубликатов карт.Но когда я использую опцию storeInVaultOnSuccess
с Braintree_Transaction::sale
, как лучше не сохранять карту, если она уже сохранена?
Редактировать:
Позвольте мне прояснить мою ситуацию, чтобы убедиться.На своей странице оформления заказа я в настоящее время использую этот JavaScript:
braintree.setup(
myToken,
'custom',
{
id: 'my-form-id',
hostedFields: {
...
},
onPaymentMethodReceived: function(obj) {
...
},
onError: function(obj) {
...
}
}
);
Клиент заполняет свой номер CC, CVV и дату истечения срока действия, нажимает кнопку отправки и затем запускается обратный вызов onPaymentMethodReceived
.В этом обратном вызове JS я выполняю AJAX-вызов на свой сервер и передаю одноразовый номер.На бэкэнде я звоню Braintree_Transaction::sale
, чтобы выставить счет клиенту.
Мне всегда нужно Braintree_Transaction::sale
для успешного завершения, чтобы продажа прошла.И затем в дополнение к этой продаже, я хочу, чтобы карта была сохранена, если клиент установил флажок «сохранить мою карту», а карта еще не сохранена.
На этой странице оформления заказа у клиента естьвозможность выбрать сохраненную карту вместо ввода всей информации о своей карте, но они могут ввести всю информацию о карте снова (для уже сохраненной карты) вместо выбора сохраненной карты.
Как бы вы это сделалиучитывая эту настройку?Ваши настройки ниже все еще применяются?Если да, то как именно я интегрирую нижеприведенное с моей настройкой выше?Или мне нужно изменить для этого свой UI / UX (я думаю, что это довольно стандартный процесс оформления заказа)?