修复微信支付通知逻辑中的openid获取问题

- 修改了获取openid的方式,从用户认证表中查询openid,而不是直接使用订单信息中的openid
- 增加了对openid的判断,只有在openid存在时才发送物流通知
- 优化了代码结构,提高了代码的可读性和维护性
This commit is contained in:
mkm 2024-10-08 20:32:25 +08:00
parent 2804910665
commit a4d21adea5

View File

@ -25,6 +25,7 @@ use app\common\model\store_product_log\StoreProductLog;
use app\common\model\system_store\SystemStore;
use app\common\model\user\User;
use app\common\model\user\UserAddress;
use app\common\model\user\UserAuth;
use app\common\model\user\UserRecharge;
use app\common\model\user_ship\UserShip;
use app\common\model\user_sign\UserSign;
@ -273,8 +274,11 @@ class PayNotifyLogic extends BaseLogic
// self::addUserSing($order);
// self::dealProductLog($order);
if (!empty($extra['payer']['openid']) && $order->pay_type == 7) {
Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $extra['payer']['openid'], 'logistics_type' => 4]);
if ($order->pay_type == 7) {
$openid=UserAuth::where('user_id',$order['uid'])->value('openid');
if($openid){
Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $openid, 'logistics_type' => 4]);
}
}
if ($order['pay_type'] == 9) {
Db::name('wechat_micropay')->where(['order_id' => $order['order_id']])->delete();