pull/5/head
wanghousheng 9 months ago
parent 28caa20851
commit b6c8058cd4
  1. 9
      app/api/service/Notify.php
  2. 5
      app/api/service/wholesaler/PaySuccess.php
  3. 10
      app/common/model/dealer/Order.php
  4. 4
      app/timer/service/dealer/Order.php

@ -26,7 +26,6 @@ use app\common\library\payment\Facade as PaymentFacade;
use app\common\library\payment\gateway\Driver;
use app\common\library\payment\gateway\driver\wechat\V3 as WechatPaymentV3;
use cores\exception\BaseException;
use think\facade\Db;
/**
* 服务类:第三方支付异步通知
@ -68,7 +67,6 @@ class Notify
*/
public function wechatV3(): string
{
Db::table('yoshop_wx_server')->insertGetId(['content' => "进入回调第二步", 'created_at' => date('Y-m-d H:i:s')]);
try {
// 通过微信支付v3平台证书序号 获取支付模板
$wechatpaySerial = \request()->header('wechatpay-serial');
@ -85,7 +83,6 @@ class Notify
$platformCertificateFilePath = PaymentTemplateModel::realPathCertFile(
PaymentMethodEnum::WECHAT, $fileName, $templateInfo['store_id']
);
Db::table('yoshop_wx_server')->insertGetId(['content' => "进入回调第三步", 'created_at' => date('Y-m-d H:i:s')]);
// 验证异步通知是否合法并获取第三方支付交易订单号
$V3 = new WechatPaymentV3();
$outTradeNo = $V3->notify($apiv3Key, $platformCertificateFilePath);
@ -94,7 +91,6 @@ class Notify
// 获取第三方交易记录
$tradeInfo = PaymentTradeModel::detailByOutTradeNo($outTradeNo);
// 订单支付成功事件
Db::table('yoshop_wx_server')->insertGetId(['content' => "进入回调第四步", 'created_at' => date('Y-m-d H:i:s')]);
$this->orderPaySucces($tradeInfo, $V3->getNotifyParams());
} catch (\Throwable $e) {
// 记录错误日志
@ -139,7 +135,6 @@ class Notify
'orderType' => OrderTypeEnum::data()[$tradeInfo['order_type']]['name'],
'tradeInfo' => $tradeInfo->toArray(),
]);
Db::table('yoshop_wx_server')->insertGetId(['content' => "进入回调第五步", 'created_at' => date('Y-m-d H:i:s')]);
try {
// 订单支付成功业务处理 (商城订单)
if ($tradeInfo['order_type'] == OrderTypeEnum::ORDER) {
@ -187,10 +182,6 @@ class Notify
}
// 订单支付成功业务处理 (开通采购商)
if ($tradeInfo['order_type'] == OrderTypeEnum::WHOLESALER) {
Db::table('yoshop_wx_server')->insertGetId(['content' => "进入采购商回调", 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => json_encode($tradeInfo), 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => "paymentData数据", 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => json_encode($paymentData), 'created_at' => date('Y-m-d H:i:s')]);
$service = new wholesaler\PaySuccess();
$service->setOrderNo($tradeInfo['order_no'])
->setMethod($tradeInfo['pay_method'])

@ -15,7 +15,6 @@ use app\common\library\Lock;
use app\common\library\Log;
use app\common\service\BaseService;
use cores\exception\BaseException;
use think\facade\Db;
class PaySuccess extends BaseService
{
@ -103,12 +102,10 @@ class PaySuccess extends BaseService
{
// 验证当前参数是否合法
$this->verifyParameters();
Db::table('yoshop_wx_server')->insertGetId(['content' => "验证通过", 'created_at' => date('Y-m-d H:i:s')]);
// 当前订单开启并发锁
$this->lockUp();
// 验证当前订单是否允许支付
if ($this->checkOrderStatusOnPay()) {
Db::table('yoshop_wx_server')->insertGetId(['content' => "可以支付", 'created_at' => date('Y-m-d H:i:s')]);
// 更新订单状态为已付款
$this->updatePayStatus();
}
@ -138,8 +135,6 @@ class PaySuccess extends BaseService
Log::append('PaySuccess --updatePayStatus', ['title' => '订单已付款事件']);
// 当前订单信息
$orderInfo = $this->getOrderInfo();
Db::table('yoshop_wx_server')->insertGetId(['content' => "订单信息", 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => json_encode($orderInfo), 'created_at' => date('Y-m-d H:i:s')]);
// 事务处理
$this->orderModel()->transaction(function () use ($orderInfo) {
// 更新订单状态

@ -18,6 +18,7 @@ use app\common\library\helper;
use app\common\model\Order as OrderModel;
use app\common\model\OrderGoods as OrderGoodsModel;
use cores\BaseModel;
use think\facade\Db;
use think\model\relation\BelongsTo;
/**
@ -135,6 +136,8 @@ class Order extends BaseModel
$goodsPrice = min($capital['orderPrice'], $goods['total_pay_price']);
// 计算商品实际佣金
$goodsCapital = static::calculateGoodsCapital($setting, $goods, (string)$goodsPrice);
Db::table('yoshop_wx_server')->insertGetId(['content' => 'goodsCapital数据', 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => json_encode($goodsCapital), 'created_at' => date('Y-m-d H:i:s')]);
// 累积分销佣金
$level >= 1 && $capital['first_money'] = helper::bcadd($capital['first_money'], $goodsCapital['first_money']);
$level >= 2 && $capital['second_money'] = helper::bcadd($capital['second_money'], $goodsCapital['second_money']);
@ -155,6 +158,13 @@ class Order extends BaseModel
// 判断是否开启商品单独分销
if (!$goods['is_ind_dealer']) {
// 全局分销比例
$arr = [
'first_money' => helper::bcmul($goodsPrice, helper::bcdiv($setting['first_money'], 1000, 3)),
'second_money' => helper::bcmul($goodsPrice, helper::bcdiv($setting['second_money'], 1000, 3)),
'third_money' => helper::bcmul($goodsPrice, helper::bcdiv($setting['third_money'], 1000, 3))
];
Db::table('yoshop_wx_server')->insertGetId(['content' => '全局分销比例', 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => json_encode($arr), 'created_at' => date('Y-m-d H:i:s')]);
return [
'first_money' => helper::bcmul($goodsPrice, helper::bcdiv($setting['first_money'], 1000, 3)),
'second_money' => helper::bcmul($goodsPrice, helper::bcdiv($setting['second_money'], 1000, 3)),

@ -17,6 +17,7 @@ use app\common\service\BaseService;
use app\timer\library\Tools;
use app\timer\model\dealer\Order as DealerOrderModel;
use app\timer\model\dealer\User as DealerUserModel;
use think\facade\Db;
use think\model\Collection;
/**
@ -99,6 +100,9 @@ class Order extends BaseService
}
// 重新计算分销佣金
$capital = DealerOrderModel::getCapitalByOrder($orderItem['order']);
Db::table('yoshop_wx_server')->insertGetId(['content' => '$capital数据', 'created_at' => date('Y-m-d H:i:s')]);
Db::table('yoshop_wx_server')->insertGetId(['content' => json_encode($capital), 'created_at' => date('Y-m-d H:i:s')]);
// 发放一级分销商佣金
$orderItem['first_user_id'] > 0 && DealerUserModel::grantMoney((int)$orderItem['first_user_id'], (float)$capital['first_money'], $storeId);
// 发放二级分销商佣金

Loading…
Cancel
Save