我的应用程序中有条带网关付款,但在 (1.1.2021) 欧盟应用了新的安全限制之后,它不适用于 3D 安全信用卡。所以我尝试添加 3Ds auth,但我在我的服务器上收到服务器错误 500 并拒绝在条带上付款。我的应用程序基于 Cezerin2 存储库。我也尝试通过 google pay 实现卡支付,但我遇到了同样的错误。对不起,我对服务器端应用程序没有太多经验。 这是我的代码:
import stripePackage from 'stripe';
import OrdersService from '../services/orders/orders';
import OrdertTansactionsService from '../services/orders/orderTransactions';
const getPaymentFormSettings = options => {
const { gateway, gatewaySettings, order, amount, currency } = options;
const formSettings = {
order_id: order.id,
amount,
currency,
email: order.email,
public_key: gatewaySettings.public_key
};
return Promise.resolve(formSettings);
};
const processOrderPayment = async ({ order, gatewaySettings, settings }) => {
try {
const stripe = stripePackage(gatewaySettings.secret_key);
const charge = await stripe.charges.create({
amount: order.grand_total * 100,
currency: settings.currency_code,
**type: 'three_d_secure',
three_d_secure: {
card: source_id, #src_xcvxcvxcvc
},
redirect: {
return_url: return_url
},**
description: `Order #${order.number}`,
statement_descriptor: `Order #${order.number}`,
metadata: {
order_id: order.id
},
source: order.payment_token
});
// status: succeeded, pending, failed
const paymentSucceeded =
charge.status === 'succeeded' || charge.paid === true;
if (paymentSucceeded) {
await OrdersService.updateOrder(order.id, {
paid: true,
date_paid: new Date()
});
}
await OrdertTansactionsService.addTransaction(order.id, {
transaction_id: charge.id,
amount: charge.amount / 100,
currency: charge.currency,
status: charge.status,
details: charge.outcome.seller_message,
success: paymentSucceeded
});
return paymentSucceeded;
} catch (err) {
// handle errors
return false;
}
};
export default {
getPaymentFormSettings,
processOrderPayment
};```