问题描述
我正在尝试构建一个电子商务应用程序,卖家可以在该平台上发布其商品并将其出售给买家。该移动应用程序是使用Flutter构建的,我正在使用Firebase Firestore和Storage以Stripe作为我的付款处理选择来处理数据。
我在中型(https://medium.com/flutter-community/build-a-marketplace-in-your-flutter-app-and-accept-payments-using-stripe-and-firebase-72f3f7228625)上看到了本指南,该指南在使我的脚步进入在线支付处理方面做得非常好。
但是,他在那里提到的一件事似乎并不是一种安全的付款方式?
他在指南中所做的是,在客户端应用程序内,他发出了一个https POST请求
final http.Response response = await http.post(‘$urlamount=$amount¤cy=GBP&paym=${paymentMethod.id}’);
然后在他使用的云功能内部:
exports.StripePI = functions.https.onRequest(async (req,res) => {
const stripeVendorAccount = 'acct_someAccountIdHere';
stripe.paymentMethods.create(
{
payment_method: req.query.paym,},{
stripeAccount: stripeVendorAccount
},function(err,clonedPaymentMethod){
if(err != null) {
console.log(err);
} else {
stripe.paymentIntents.create(
{
**amount = req.query.amount**,// Security concern??
currency = req.query.currency,...etc
}
)
}
}
);
必须从客户端传递总数似乎不是一个好的安全惯例?我可以想象也许有足够知识的人可以对应用程序进行逆向工程并编辑该金额变量?
那么设置金额的正确方法是什么?
我已经看过并阅读了Google Firebase团队的视频和帖子中的所有官方指南,但是,涉及到的只是:
const amount = snap.data().amount;
我曾考虑过使用Cloud函数以某种方式将所有商品的价格和数量加在一起/加起来以生成数量,但这真的是解决此问题的最有效方法吗?如果有N个卖家,其中有M个买家订购了商品,这会不会导致Cloud Functions进行很多不必要的计算?
我不熟悉移动和在线支付,因此首先感谢您的耐心等候。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)