我正在为我的网站使用 Adyen Web Drop-in。我没有在插件中显示支付按钮,而是使用插件外部的按钮来启动提交。
但是如何在提交之前检查是否输入了所有必填字段?比如在选择iDeal时,如果用户没有从下拉菜单中选择银行,当我发起提交时,下拉菜单会显示选择您的银行下拉菜单无效并且不继续make支付请求。但我没有收到通知或错误或任何东西。
单击时我禁用了我的付款按钮,以防止用户在付款过程中再次单击它。但是没有一些通知,我现在如何再次启用该按钮?
顺便说一句,我仍在为我的网站使用 AngularJS。仍在升级到 Angular 的过程中,因此付款表格仍在 AngularJS 上。
这是安装插件的代码:
function mountAdyenPaymentDropIn(adyenPaymentMethods) {
var configuration = {
locale: 'en_US',
environment: adyenPaymentMethods.environment,
clientKey: adyenPaymentMethods.clientKey,
paymentMethodsResponse: adyenPaymentMethods.paymentMethods
};
var checkout = new AdyenCheckout(configuration);
$scope.adyenPaymentDropin = checkout
.create('dropin',
{
showPayButton: false,
paymentMethodsConfiguration: {},
onSubmit: (state, dropin) => {
console.log('onsubmit')
makePayment(state.data)
.then(response => {
console.log('makepayment response', response);
handleResponse(response, dropin);
})
.catch(error => {
console.log('makePayment error', error);
throw Error(error);
});
},
onAdditionalDetails: (state, dropin) => {
console.log('details')
makeDetailsCall(state.data)
.then(response => {
console.log('details response', response);
handleResponse(response, dropin);
})
.catch(error => {
console.log('additionalDetails error', error);
throw Error(error);
});
},
onError: (error, component) => {
console.log('dropin error', error, component);
}
})
.mount('#dropin');
}
我添加了 console.logs 来看看会发生什么。当提交选择银行的表单时,我看到的第一条消息是 makePayment 消息,正如预期的那样。但是,如果我没有在下拉列表中选择银行并提交,则不会触发任何日志。很明显,在付款之前是否输入了所有必填字段(应该如此),但我不知道如何获得该反馈。