V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Waooo
V2EX  ›  程序员

请各位大神帮忙!开发商城系统时下单部分的计算是如何操作的,我们现在开发的商城系统有一个优惠券部分,在下单时要根据优惠规则来计算实际支付价格。我们的后台给出的方案是:见详情

  •  
  •   Waooo · 2017-06-07 09:32:37 +08:00 · 5557 次点击
    这是一个创建于 2713 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大神帮忙!开发商城系统时下单部分的计算是如何操作的,我们现在开发的商城系统有一个优惠券部分,在下单时要根据优惠规则来计算实际支付价格。

    我们的后台给出的方案是:前端根据优惠规则计算应付价格,后端也计算一个价格,然后前后端对照,一致的情况下下单才能成立,在下单时前端加密,后端解密。不知道这个发法对不对,对的话有什么优点和缺点,小弟初次开发 app,还请各位大神前辈指教。
    17 条回复    2017-06-07 19:05:16 +08:00
    annielong
        1
    annielong  
       2017-06-07 09:41:53 +08:00
    为了安全,还是以后端为主,前端仅仅是显示
    li24361
        2
    li24361  
       2017-06-07 09:42:10 +08:00
    后端提供一个接口,输入优惠规则,返回计算的结果金额,前台展示即可,提交的时候,后端再校验一次,防止被修改
    CYKun
        3
    CYKun  
       2017-06-07 09:43:00 +08:00 via Android
    为什么不由后端负责生成价格,前端只负责展示呢?
    Fishdrowned
        4
    Fishdrowned  
       2017-06-07 09:50:27 +08:00 via Android   ❤️ 1
    你没听说过永远不要信任客户端的请求吗,任何请求都是可以伪造的
    zvving
        5
    zvving  
       2017-06-07 09:58:59 +08:00 via iPhone   ❤️ 2
    http://www.jianshu.com/p/eb653c140b86

    可以参考我之前写的。这种计算最终判断必然以后端为准,不需要加密什么的,想太多。

    订单有订单 ID,优惠券有优惠券 ID,前端怎么优化显示不重要,最终后端那这两个 ID 处理计算价格。
    artikle
        6
    artikle  
       2017-06-07 10:41:10 +08:00
    听楼上的,一般都是后端自己根据优惠券 ID 计算价格,不考虑前端价格,不过可以加个两前端和后端两者的比较,不一致就不执行下单操作 给错误提示
    gdtv
        7
    gdtv  
       2017-06-07 10:46:13 +08:00
    1、以后端计算的结果为准
    2、可以由后端计算好后返回给前端展示,也可以前端自己根据金额和规则自己计算,但最后还是以后端为准
    3、不用前端加密
    Waooo
        8
    Waooo  
    OP
       2017-06-07 10:52:08 +08:00
    谢谢各位大神不吝赐教~! m(_ _)m
    jarlyyn
        9
    jarlyyn  
       2017-06-07 10:53:44 +08:00
    价格都能让前端算了?
    XiaoFaye
        10
    XiaoFaye  
       2017-06-07 11:02:21 +08:00
    如果不是做成奶东那么大的话,随便 WordPress+WooCommerce 也够用了。
    Waooo
        11
    Waooo  
    OP
       2017-06-07 12:21:57 +08:00
    请教 app 开发大神们一个问题,淘宝提交订单前,对商品数量进行加减,同时会给你提供你已领取的并满足要求的店铺优惠券,并给个最优的,这个过程反映挺快的;请问这个过程的计算是前端计算嘛?如果是前端计算的话,是不是提交订单时,这些信息再和后台验证一下。
    AstroProfundis
        12
    AstroProfundis  
       2017-06-07 12:28:01 +08:00
    不管是不是前端计算你后端都要再验证的啊...必须只能以后端计算的为准,不然分分钟焦作人...
    kanezeng
        13
    kanezeng  
       2017-06-07 12:31:44 +08:00
    永远都是后端计算就好了啊,前端直接调用后端的接口取结果啊,两个地方计算一来是前端的计算永远不可信,二来是后期维护也麻烦啊。
    zander110
        14
    zander110  
       2017-06-07 13:50:54 +08:00
    肯定是后端计算好价格, 不然你改个优惠券规则还要发个 APP 版本?
    zander110
        15
    zander110  
       2017-06-07 13:52:36 +08:00
    如果不发强制更新的版本, 就要处理两套或多套的价格逻辑, 保证让你们的后端欲仙欲死...
    MrMario
        16
    MrMario  
       2017-06-07 14:21:25 +08:00 via iPhone   ❤️ 2
    不加密也可以,在做好用户身份鉴别的基础上,确保订单 ID 和优惠券 ID 的不透明性(即复杂度要求)、权限控制(确保用户只可访问自身订单,只可使用自身优惠券),前端只需要传商品 ID、数量、优惠券 ID 即可,其余用户身份鉴别、参数合法性(如数量的负数与小数等)校验,订单金额计算,优惠券权限鉴别与抵扣等均需后端进行
    jswh
        17
    jswh  
       2017-06-07 19:05:16 +08:00
    前端只想后端提交订单和优惠券信息,后端计算价格并发起支付。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2977 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:22 · PVG 21:22 · LAX 05:22 · JFK 08:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.