国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 小程序 > 正文

微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法的詳解

2020-03-22 18:24:23
字體:
來源:轉載
供稿:網友
下面小編就為大家分享一篇html' target='_blank'>微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法,具有很好的參考價值,希望對大家有所幫助

小程序之后的異步驗證和訂單處理

 ?php * Created by YuanPan. * User: YuanPan * Date: 2017/12/21 * Time: 15:15namespace app/api/service;use app/api/model/Product;use app/lib/enum/OrderStatusEnum;use think/Db;use think/Exception;use think/Loader;use app/api/model/Order;//在這里依然引入WxPay.API.php即可完成引入Loader::import( WxPay.WxPay ,EXTEND_PATH, .Api.php class WxNotify extends /WxPayNotify //繼承了父類,所以直接重寫方法 public function NotifyProcess($data, $msg) //如果返回支付成功信息 if($data[ return_code ] = SUCCESS ){ $orderNo = $data[ out_trade_no  Db::startTrans(); //判斷訂單狀態 //在這里可以進行對數據庫進行所機制 //簡單說,當一個執行sql語句的事務想要操作表記錄之前,先向數據庫發出請求,對你訪問的記錄集加鎖 //在這個事務釋放這個鎖之前,其他事務不能對這些數據進行更新操作 Order::where([ order_no = $orderNo])- lock(true)- find();// $order = Order::get([ order_no = $orderNo]); //如果未支付 if ($order- status == 1) { $service = new /app/api/service/Order(); //查詢到該訂單號的商品和庫存量信息 $stockStatus = $service- checkOrderStock($order-  //如果庫存量有,更新訂單狀態,以及減去商品庫存 if ($stockStatus[ pass ]) { $this- updateOrderStatus($order- id, true); $this- reduceStock($stockStatus); //如果沒有庫存,訂單狀態修改為已支付,但訂單未處理 } else { $this- updateOrderStatus($order- id, false); Db::commit(); //返回給微信 return true; }catch (Exception $e){ Db::rollback(); return fasle; }else{ //如果微信返回失敗的處理信息,那我們這里依然返回true,向微信表明態度 return true; //支付成功,減去商品庫存 private function reduceStock($stockStatus) //遍歷減去 foreach ($stockStatus[ pStatusArray ] as $v) { //使用tp5的setDec方法 Product::where([ id = $v[ id ]])- setDec( stock ,$v[ count  //success為真,則訂單修改為PAID,如果為假則修改為已支付,但訂單未處理的狀態,對應枚舉信息修改 private function updateOrderStatus($orderID,$success) $status = $success?OrderStatusEnum::PAID:OrderStatusEnum::PAID_BUT_OUT_OF; Order::where([ id = $orderID])- update([ status = $status]);}

控制器中如下:

 public function receiveNotify() //1:檢查庫存量防止超賣 //2:更新status狀態 //3:減庫存 //如果成功處理,返回成功處理信息,否則返回沒有成功處理信息 $notify = new WxNotify(); $notify- handle(); }

以上這篇微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持php 。

您可能感興趣的文章:

PHP 使用Echarts生成數據統計報表的實現

PHP根據手機號判斷運營商

Laravel5.2使用Captcha生成驗證碼實現登錄

以上就是微信小程序之支付后調用SDK的異步通知及驗證處理訂單方法的詳解的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长海县| 莲花县| 保康县| 都兰县| 额敏县| 乐平市| 黔西| 大余县| 宜君县| 黔东| 图木舒克市| 凤庆县| 兰坪| 中山市| 寿光市| 哈尔滨市| 昌图县| 宣威市| 新余市| 昌平区| 侯马市| 攀枝花市| 余姚市| 竹溪县| 开阳县| 屏南县| 南靖县| 中牟县| 桃江县| 光山县| 福鼎市| 绥阳县| 盘山县| 望城县| 兴海县| 洪湖市| 洪湖市| 普陀区| 高碑店市| 万安县| 翼城县|