/**
* 创建订单接口
* 请求地址:https://www.***.com/site.php?act=module&name=bj_qmxk&do=app_wxapi&opp=createorder
* 请求参数{ title、price、number、total、openid、address }
* 后面有改动{直接将上面的参数艺术组的形式(goodslist)的形式传给接口即可}
* 说明:{标题、单价、数量、总价、openid、收货地址}
* 成功返回:status(状态值)、message(提示消息)、openid、counts(数量)、prices(单价)、createtime(创建时间)、ordersn(订单编号)、orders(订单信息)
*/
private function api_createorders(){
function object_array($array)
{
if (is_object($array)) {
$array = (array)$array;
}
if (is_array($array)) {
foreach ($array as $key => $value) {
$array[$key] = object_array($value);
}
}
return $array;
}
//接收商品订单信息(数组)
if (empty($_GET['goodslist'])){
$this->olResponse('goodslist不存在!');
}
$order = json_decode($_GET['goodslist']);
$orders = object_array($order);
if (empty($_GET['openid'])){
$this->olResponse('缺少openid参数!');
}
if (!empty($_GET['count'])){
$counts = $_GET['count'];
}else{
$counts = '1';
}
if (!empty($SetAttach)){
$SetAttach = $_GET['attach']; //附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
}else{
$SetAttach = "0";
}
if (!empty($Goods_tag)){
$Goods_tag = $_GET['goods_tag']; //商品标签
}else{
$Goods_tag = "0";
}
$openId = $_GET['openid'];
$createtime = time(); //设置订单生成时间
$deadline = '0'; //设置订单失效时间
$ordersn = date('ymdhis') . random(6, 1); //生成订单编号,商超版自带的
$out_trade_no = WxPayConfig::MCHID.date("YmdHis"); //运用微信支付内部方法,生成订单编号
/**
* 创建订单信息,保存到数据库
*/
//添加一条用户记录,并判断是否成功
foreach ($orders as $order){
$price = $order['price'] * $order['count']; //单个商品总价
$prices += $price; //商品总价
}
//收集整理并存储订单信息
$order_data = array(
'weid' => '1',
'from_user' => $openId,
'createtime' => $createtime,//创建订单时间
'ordersn' => $ordersn, //创建订单编号
'transid' => $out_trade_no, //创建微信支付单号
'price' => $prices/100, //存入数据库的商品总价(0.00)
'goodsprice' => $prices/100, //存入数据库的商品总价(0.00)
'status' => '0', //待付款状态
'deadline' => $deadline, //订单失效时间
'attach' => $SetAttach, //附加数据
// 'goods_tag' => $Goods_tag, //商品标签
);
$result = pdo_insert('bj_qmxk_order', $order_data);
if (!empty($result)) {
$id = pdo_insertid();//商品订单id用于存进商品订单信息表
}
//收集整理并存储订单对应商品信息,一个订单对应一个或多个商品;
foreach ($orders as $order){
$pricesql = $order['price']/100; //转换后存入数据库的商品单价价格
$order_goods_data = array(
'weid' => '1',
'orderid' => $id, //$id是订单表(bj_qmxk_order)新增的数据id
'goodsid' => $order['id'], //商品信息的id,根据该id可在商品信息表(bj_qmxk_goods)中查找对应的商品;
'total' => $order['count'], //商品数量
'price' => $pricesql, //商品单价(0.00)
'createtime' => $createtime, //创建订单时间
'status' => '0',
);
$order_goods = pdo_insert('bj_qmxk_order_goods', $order_goods_data);
}
//如果创建成功则返回下面的参数,以便接着发起支付使用
if (!empty($order_goods)) {
$this->olarray(array(
'status' => '1',
'message' => '创建订单成功!',
'openid' => $openId,
'counts' => $counts,
'prices' => $prices,
'createtime' => $createtime,
'ordersn' => $ordersn,
'orders' => $orders,
));
}else{
$this->olarray(array('status' => '0','message' => '创建订单失败!'));
}
}
最后修改:2020-06-20T05:07:24.000000Z
© 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
发表评论