我一直在尝试使用 Adyen Drop-in 组件在我正在开发的 Razor 页面网站上进行付款。我有一个正在运行的测试版本,可以支付硬编码的金额,但我还没有弄清楚如何将唯一的订单 ID 传递给我的 API 端点发出支付请求。
以https://docs.adyen.com/online-payments/drop-in-web中的示例为例,插件组件通过 JavaScript 使用
const checkout = new AdyenCheckout(configuration);
const dropin = checkout.create('dropin').mount('#dropin-container');
对象是用类似的configuration
东西创建的
const configuration = {
paymentMethodsResponse: paymentMethodsResponse, // The `/paymentMethods` response from the server.
clientKey: "YOUR_CLIENT_KEY", // Web Drop-in versions before 3.10.1 use originKey instead of clientKey.
locale: "en-US",
environment: "test",
onSubmit: (state, dropin) => {
// Your function calling your server to make the `/payments` request
makePayment(state.data)
.then(response => {
if (response.action) {
// Drop-in handles the action object from the /payments response
dropin.handleAction(response.action);
} else {
// Your function to show the final result to the shopper
showFinalResult(response);
}
})
.catch(error => {
throw Error(error);
});
},
onAdditionalDetails: (state, dropin) => {
// Your function calling your server to make a `/payments/details` request
makeDetailsCall(state.data)
.then(response => {
if (response.action) {
// Drop-in handles the action object from the /payments response
dropin.handleAction(response.action);
} else {
// Your function to show the final result to the shopper
showFinalResult(response);
}
})
.catch(error => {
throw Error(error);
});
}
};
然后 Adyen 自己的 JavaScriptstate
为该方法提供对象onSubmit
,以便使用PaymentRequest
从state.data
.
但是,由于无法在此PaymentRequest
对象中获取唯一的订单 ID,我的服务器端代码不知道要设置多少数量。请注意,可以在Amount
对象中设置对象,configuration
但这仅用于在 Drop-in 组件上显示值 - 该值不会传递给服务器。
那么如何通过 Drop-in 组件传递唯一的订单 ID 呢?