订单架构介绍:订单创建及订单支付

后台-系统设置-扩展变量-手机广告位-内容正文顶部

一、订单创建

1.订单创建流程

  1.商品详情页面---点击立即购买或加入购物车,此时会将购买的商品存入redis

  2.如果是立即购买会自动跳转至商品结算页面,如果是加入购物车,需要进入购物车页面点击结算,跳转至商品结算页面

  3.商品结算页面---获取结算详情(总价格,优惠活动等)

  4.商品结算页面---用户设置收货地址、支付类型、发票、送货时间等参数信息。

  5.商品结算页面---点击提交订单,此时进行交易入库和订单入库

2.Redis缓存结构

  •   购物车原始数据

  key:{CART_ORIGIN_DATA_PREFIX}_买家id

  value:List

存储了购物车商品列表

  •   立即购买原始数据

  key值:{BUY_NOW_ORIGIN_DATA_PREFIX}_买家id

  value值:List

存储了立即购买的商品,list的长度是1

  •   用户选择的促销信息

  key值:{CART_PROMOTION_PREFIX}_买家id

  value值:SelectedPromotionVo

存储了优惠活动和优惠卷等信息(按卖家分类)

二、订单支付

1、跳转支付

  1.前端对某订单发起支付

通过ajax调用,传递交易或订单SN参数(带token)

  2.支付API返回跳转参数

  支付api返回跳转form所需的表单项,格式如下:

  {

  gateway_url:"https://openapi.alipay.com/gateway.do",

  form_items[{

  item_name:"",

  item_value:""

  }

  //,other...

  ]

  }

  3.由前端向第三方支付发起跳转

这部分的操作体验为:新打开窗口来打开第三方平台

本窗口遮罩,并显示两个按钮:支付成功、支付出现问题

  4.用户在第三方平台上完成支付操作

  5.第三平台跳转回我方平台

此时会跳向DomainSettings.buyer/payment/{trade_type}/{sn}/result

既同步回调地址,但这里我们不再做支付结果校验

此页面为前端页面,展示出交易或者订单(使用trade_type来判断交易trade或者订单order)“支付已经完成”字样

支付结果会在异步通知中来完成

  6.第三方平台异步通知我方系统支付结果

我方系统更改订单状态

2、二维码支付

  1.当用户选择某个支付方式时,前端嵌入一个iframe

  2.在iframe中向支付api发起支付请求

此api为:get:/order/pay/{trade_type}/{sn}

  3.api返回跳转的form项

  支付api返回跳转form所需的表单项,格式如下:

  {

  gateway_url:"https://openapi.alipay.com/gateway.do",

  form_items[{

  item_name:"",

  item_value:""

  }

  //,other...

  ]

  }

  4.由前端向第三方支付发起跳转

  5.第三方支付返回二维码的界面

在本界面中,支付宝本身提供了支付状态查询功能

但微信没有提供这样的功能,所以,如果是微信的话,在第三步中的gateway_url实际上会是我们自己的一个api,在这个api中我们自己实现了和支付宝二维码界面一样的的支付状态查询功能

  微信二维码显示页的api为:

POST:/order/pay/weixin/qrpage/{微信交易号}/{微信QR码}

  其中交易号和微信QR码会在第二步中的返回值中得到

  此api的view页面在:/resources/templates/weixin_qr.ftl

  在此页面中会包含一个二维码显示的图片,其src为:

/order/pay/weixin/qr/{QR码}

  此页面还包含一个付款状态检测程序,以便及时得到用户付款成功的反馈完成页面的跳转,此api为:

/order/pay/weixin/status/{微信交易单号}

  6.用户用手机扫描上述二维码

  7.手机上的微信或支付宝会调起支付

  8.用户在第三方平台上完成支付

  9.第三方平台会通知我平台支付的状态

  10.此时iframe中的二维码界的js程序会轮询支付状态,就但支付成功统一调用一个规定好的方法:

parent.payComplete()

  11.前端在父页面中已经定义好了这样的一个方法来处理相应的支付完成操作

  综上所述,我们可以了解到关于订单创建及订单支付的内容,想了解更多详情,可以持续关注易族智汇javashop,有任何问题,欢迎咨询我们在线客服。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

后台-系统设置-扩展变量-手机广告位-内容正文底部
留言与评论(共有 0 条评论)
   
验证码: