vr-shopxo-source/app/service/OtherHandleService.php

84 lines
4.0 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://opensource.org/licenses/mit-license.php )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\service;
use think\facade\Db;
use app\service\ExpressService;
use app\service\AppMiniUserService;
/**
* 其他处理服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class OtherHandleService
{
/**
* 微信发货同步处理方法
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-01-17
* @desc description
* @param [int] $params['order_model'] [订单模式]
* @param [int] $params['business_id'] [业务订单id]
* @param [string] $params['business_type'] [业务订单类型]
* @param [int] $params['express_id'] [发货快递id]
* @param [string] $params['express_number'] [发货快递单号]
* @param [int] $params['receiver_tel'] [收件人电话]
* @param [string|array] $params['goods_title'] [货物名称]
*/
public static function OrderDeliverySyncWeixinHandle($params = [])
{
if(MyC('common_app_mini_weixin_upload_shipping_status', 0, true) == 1 && isset($params['order_model']) && isset($params['business_id']) && isset($params['business_type']) && !empty($params['goods_title']))
{
// 获取支付日志
$pay_log_ids = Db::name('PayLogValue')->where(['business_id'=>$params['business_id']])->column('pay_log_id');
if(!empty($pay_log_ids))
{
// 仅获取【微信和微信扫码】支付方式的订单日志
$where = [
['id', 'in', $pay_log_ids],
['business_type', '=', $params['business_type']],
['payment', 'in', ['Weixin', 'WeixinScanQrcode']],
['status', '=', 1],
];
$pay_log = Db::name('PayLog')->field('trade_no,buyer_user')->where($where)->find();
if(!empty($pay_log))
{
$trade_no = $pay_log['trade_no'];
$buyer_user = $pay_log['buyer_user'];
// 发货快递信息
$express_id = isset($params['express_id']) ? intval($params['express_id']) : 0;
$express_number = isset($params['express_number']) ? intval($params['express_number']) : '';
$receiver_tel = isset($params['receiver_tel']) ? intval($params['receiver_tel']) : '';
// 调用微信发货同步
return (new \base\Wechat(AppMiniUserService::AppMiniConfig('common_app_mini_weixin_appid'), AppMiniUserService::AppMiniConfig('common_app_mini_weixin_appsecret')))->MiniUploadShippingInfo([
'order_model' => $params['order_model'],
'trade_no' => $pay_log['trade_no'],
'buyer_user' => $pay_log['buyer_user'],
'goods_title' => $params['goods_title'],
'express_name' => ExpressService::ExpressName($express_id),
'express_number' => $express_number,
'receiver_tel' => $receiver_tel,
'consignor_tel' => MyC('common_customer_store_tel'),
]);
}
}
}
return DataReturn(MyLang('handle_noneed'), 0);
}
}
?>