| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- declare (strict_types=1);
- // +----------------------------------------------------------------------
- // | [ WE CAN DO IT MORE SIMPLE ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2018-2020 rights reserved.
- // +----------------------------------------------------------------------
- // | 支付结算
- // +----------------------------------------------------------------------
- // | Date: 2020-08-25 17:23
- // +----------------------------------------------------------------------
- namespace app\lib;
- use app\api\controller\Recharge;
- use app\model\api\PayTrade;
- use app\model\api\Order;
- use app\model\api\ShowTemplateOrder;
- use app\model\api\UserShowTemplate;
- use app\model\api\RechargeOrder;
- use app\model\api\OrderInfo;
- use app\model\api\User as UserModel;
- use app\model\api\UserDetail as UserDetailModel;
- use app\model\api\UserScoreDetail;
- use app\model\api\Sys as SysModel;
- use think\facade\Db;
- class OrderLib
- {
- /**
- * 支付反馈
- * @param $orderId
- * @return bool|string
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function orderPay($payOn,$payDataInfo="")
- {
- $payTradeData = (new PayTrade)->where('pay_no', $payOn)->find();
- @file_put_contents('quanju.txt', json_encode($payTradeData). "-支付反馈\r\n", 8);
- if (empty($payTradeData)) {
- return false;
- }
- //已支付
- if ($payTradeData['status'] == 1) {
- return false;
- }
- $userData = (new UserModel)->where('uid', $payTradeData['uid'])->find();
- if(empty($userData)){
- return false;
- }
- //处理支付成功
- PayTrade::beginTrans();
- try {
- $res=(new PayTrade)->where('id', $payTradeData['id'])->update(['status' => 1, 'pay_time' => time(),'pay_json' => $payDataInfo]);
- @file_put_contents('quanju.txt', json_encode($res). "-修改结果\r\n", 8);
- //购买模板
- if($payTradeData["type"]=="temp"){
- $tempOrderData = (new ShowTemplateOrder)->where("id",$payTradeData['o_id'])->find();
- if(empty($tempOrderData)){
- PayTrade::rollbackTrans();
- return false;
- }
- (new ShowTemplateOrder)->where("id",$payTradeData['o_id'])->update(['status' => 1, 'pay_time' => time()]);
- //验证并绑定当前模板
- (new UserShowTemplate)->userBindTemp($tempOrderData["show_template_id"],$tempOrderData['uid']);
- //添加消费记录
- if(in_array($payTradeData["pay_type"],["alipay","wxpay"])){
- // (new UserDetailModel)->consumeLog($payTradeData['uid'],$payTradeData["money"],"show_temp_buy","购买名片模板");
- }
- PayTrade::commitTrans();
- return true;
- }
- //商城订单
- if($payTradeData["type"]=="shop"){
- (new Order)->where("id",$payTradeData['o_id'])->update(['status' => 1, 'pay_time' => time()]);
- PayTrade::commitTrans();
- return true;
- }
- //商城积分支付订单
- if($payTradeData["type"]=="shop_score"){
- (new Order)->where("id",$payTradeData['o_id'])->update(['status' => 1, 'pay_time' => time()]);
- PayTrade::commitTrans();
- return true;
- }
- //充值订单
- if($payTradeData["type"]=="recharge"){
- // 调用充值成功处理
- // $rechargeController = new \app\api\controller\Recharge();
- // $result = $rechargeController->paySuccess($payOn, $payTradeData['transaction_id'] ?? '', $payDataInfo);
- @file_put_contents('quanju.txt', $payOn. "-能到这里吗\r\n", 8);
- $result = (new RechargeOrder())->paySuccess($payOn, $payTradeData['transaction_id'] ?? '', $payDataInfo);
- if (!$result) {
- PayTrade::rollbackTrans();
- return false;
- }
- PayTrade::commitTrans();
- return true;
- }
- PayTrade::commitTrans();
- } catch (DbException $dbException) {
- @file_put_contents('quanju.txt', $dbException->getLine() . $dbException->getMessage() . $dbException->getFile() . "-处理完成报错内容\r\n", 8);
- PayTrade::rollbackTrans();
- return false;
- }
- //后台管理人员支付直接返回
- if($payTradeData["pay_type"]=="system"){
- return true;
- }
- return true;
- }
- }
|