全部
常见问题
产品动态
精选推荐

多商户2.3.0电子面单问题无法预览问题修复

管理 管理 编辑 删除

1. 修改app/controller/admin/system/serve/Export.php中的 getExportTemp 方法,如下

public function getExportTemp(CrmebServeServices $services){    
    $com = $this->request->param('com');    
    if (!$com) return app('json')->fail('请输入快递公司编号');    
    $siid = merchantConfig($this->request->merId(),'mer_config_siid');    
    $func = $siid ? 'temp' : 'tempV2';    
    return app('json')->success($services->express()->{$func}($com));
}

通过商户siid判断是走新的电子面单方法还是旧的方法


2. 修改crmeb/services/express/storage/Express.php的 temp 方法,如下

public function temp(string $com)
{
    $param = ['com' => $com];
    return $this->accessToken->httpRequest(self::EXPRESS_TEMP, $param,'post',true);
}

去掉版本参数 ['version:v1.1']


3. crmeb/services/express/storage/Express.php中添加 tempV2 方法和 EXPRESS_TEMP_V2 常量,如下

const EXPRESS_TEMP_V2 = 'expr_dump/temp';


public function tempV2(string $com)
{
    $param = ['com' => $com];
    return $this->accessToken->httpRequest(self::EXPRESS_TEMP_V2, $param,'get',true, ['version:v1.1']);
}

新增一个常量和方法,没啥好说的


4. 修改crmeb/services/HttpService.php中的 request 方法,添加处理get请求参数逻辑,如下

public static function request($url, $method = 'get', $data = array(), $header = false, $timeout = 15)
{
    self::$status = null;
    self::$curlError = null;
    self::$headerStr = null;
    $method = strtoupper($method);
    if ($method == 'GET' && !empty($data)) $url .= "?". http_build_query($data);

    $curl = curl_init($url);
    //请求方式
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    //post请求
    if ($method == 'POST') curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    //超时时间
    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
    //设置header头
    if ($header !== false) curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    //返回抓取数据
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    //输出header头信息
    curl_setopt($curl, CURLOPT_HEADER, true);
    //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header
    curl_setopt($curl, CURLINFO_HEADER_OUT, true);
    //https请求
    if (1 == strpos("$" . $url, "https://")) {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    self::$curlError = curl_error($curl);
    list($content, $status) = [curl_exec($curl), curl_getinfo($curl), curl_close($curl)];
    self::$status = $status;
    self::$headerStr = trim(substr($content, 0, $status['header_size']));
    $content = trim(substr($content, $status['header_size']));
    return (intval($status["http_code"]) === 200) ? $content : false;
}

将 $method = strtoupper($method); 代码前移,添加get请求是处理参数的逻辑

5. 修改crmeb/services/express/storage/Express.php 中 express方法

c0af7202403091142351817.png

return $this->accessToken->httpRequest(self::EXPRESS_LIST, $param,'get');


请登录后查看

被子你放开我 最后编辑于2024-03-09 11:46:15

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
1488
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

Always Prosperous Yang 作者
介绍一下我自己

回答

923

发布

13

经验

9298

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服