直接从我的 Flutter 应用程序创建 PaymentIntent 是否符合 PCI 标准?
Is it PCI compliant to create PaymentIntent directly from my Flutter app?
我已经尝试过不同的方式来通过无 webhook 流程来处理支付,但唯一的解决方案是直接从我的 dart 代码中调用 stripe API,如下所示:
var response = await http.post(
Uri.parse('https://api.stripe.com/v1/payment_intents'),
body: {
'amount': _calculateAmount(amount),
'currency': currency,
'payment_method_types[]': 'card',
'description': description,
'receipt_email': email,
},
headers: {
'Authorization': 'Bearer ${AppConfig.instance.stripeSecretKey}',
'Content-Type': 'application/x-www-form-urlencoded'
},
);
我的代码是否仍然符合 PCI 标准并得到适当保护以用于生产?
您的代码仍然符合 PCI,但不安全。密钥必须安全地存储在您的网络或移动应用程序的 server-side 代码中(例如在环境变量或凭证管理系统中)。从 Dart 调用意味着您正在向全世界公开您的凭证。在 Stripe Doc
中有解释
我已经尝试过不同的方式来通过无 webhook 流程来处理支付,但唯一的解决方案是直接从我的 dart 代码中调用 stripe API,如下所示:
var response = await http.post(
Uri.parse('https://api.stripe.com/v1/payment_intents'),
body: {
'amount': _calculateAmount(amount),
'currency': currency,
'payment_method_types[]': 'card',
'description': description,
'receipt_email': email,
},
headers: {
'Authorization': 'Bearer ${AppConfig.instance.stripeSecretKey}',
'Content-Type': 'application/x-www-form-urlencoded'
},
);
我的代码是否仍然符合 PCI 标准并得到适当保护以用于生产?
您的代码仍然符合 PCI,但不安全。密钥必须安全地存储在您的网络或移动应用程序的 server-side 代码中(例如在环境变量或凭证管理系统中)。从 Dart 调用意味着您正在向全世界公开您的凭证。在 Stripe Doc
中有解释