102 lines
4.8 KiB
PHP
102 lines
4.8 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(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))
|
|
{
|
|
// 仅获取【微信、微信扫码、微信app小程序】支付方式的订单日志
|
|
// 仅【微信、ios、android】客户端发起的支付
|
|
$where = [
|
|
['id', 'in', $pay_log_ids],
|
|
['business_type', '=', $params['business_type']],
|
|
['status', '=', 1],
|
|
];
|
|
$pay_log = Db::name('PayLog')->field('system_type,trade_no,buyer_user')->where($where)->where(function($query)
|
|
{
|
|
$query->whereOr([
|
|
[
|
|
['payment', 'in', ['Weixin', 'WeixinScanQrcode']],
|
|
['client_type', '=', 'weixin'],
|
|
],
|
|
[
|
|
['payment', '=', 'WeixinAppMini'],
|
|
['client_type', 'in', ['ios', 'android']],
|
|
]
|
|
]);
|
|
})->find();
|
|
if(!empty($pay_log))
|
|
{
|
|
$config_params = [
|
|
'system_type' => $pay_log['system_type']
|
|
];
|
|
if(AppMiniUserService::AppMiniConfig('common_app_mini_weixin_upload_shipping_status', $config_params) == 1)
|
|
{
|
|
$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']) ? $params['express_number'] : '';
|
|
$receiver_tel = isset($params['receiver_tel']) ? $params['receiver_tel'] : '';
|
|
|
|
// 调用微信发货同步
|
|
return (new \base\Wechat(AppMiniUserService::AppMiniConfig('common_app_mini_weixin_appid', $config_params), AppMiniUserService::AppMiniConfig('common_app_mini_weixin_appsecret', $config_params)))->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_chat_tel'),
|
|
]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return DataReturn(MyLang('handle_noneed'), 0);
|
|
}
|
|
}
|
|
?>
|