微擎 人人商城 对接京东vop 对接京东商品,同步商品 地址,库存,价格,上下架等。五 (上)京东后台提交订单,用户地址校验
设计模型是用户前台购买和提交到京东订单互相不冲突
故单独设计一个订单提交到京东的过程
这个时候就需要一个待处理任务表,我的设想就是这个表也要记录处理完成后 京东返回的订单状态 ,具体如下
在实际写代码中, 发现商品来源可能是本地,也有可能是 京东商城 , 也有可能是vop 所以加了个字段, 即当前订单包含vop对应的商品 在order_goods中的id
如下
当然 设计到订单问题 ,任何一个环节的问题都不能出错,简单写了一个错误表
接下来便是代码部分了, 首先要写订单标记部分, 找到order 下面的pay.php
由于之前有了判断是否是总部商品的foreach循环,所以本地仅需在这个循环里来判断订单中的商品是否是京东vop商品,当然后期小程序和 微信端两个地方都要改 加上这段代码
if ($v['goodssource'] == 5) { $jdvop['orderGoods'][]=$v['id']; } } if (!empty($jdvop['orderGoods'])){ $jdvop['uniacid']=$order['uniacid']; $jdvop['ordersn']=$order['ordersn']; $jdvop['orderid']=$order['id']; $jdvop['openid']=$order['openid']; $jdvop['status']=0; $jdvop['order_time']=date("Y-m-d H:i:s"); $jdvop['order_goods']=json_encode($jdvop['orderGoods']); unset($jdvop['orderGoods']); @$vopRes= pdo_insert('ewei_shop_jdvop_order',$jdvop); if ($vopRes!=1){ $jdvop=[ 'uniacid'=>$order['uniacid'], 'orderid'=>$order['orderid'], 'ordersn'=>$order['ordersn'], 'time'=>date("Y-m-d H:i:s"), 'status'=>0, 'type'=>'订单写入错误', 'comment'=>'用户提交订单号,写入待处理数据库失败,请联系技术员处理' ]; @pdo_insert('ewei_shop_jdvop_order_error',$jdvop);
标记代码写完后, 需要写 上传到jd的代码了,因为涉及到定时刷新,所以便找了一个框架中不需要权限的页面 来完成定时刷新
接下来便是进行代码封装
在封装中,需要检查用户地址是否进行合理校验
用户地址校验流程
address 地址表 新增字段。
当提交订单的时候 检测到地址未进行校验的时候,这个时候就会转到地址校验。
地址校验大概流程如上,
地址问题搞定后 ,接下来便是对需要提交的数据,进行合并,提交
包括以下常用固定值。 发票等
按照文档对应内容 填充字段,准备提交