新手必看

新手必看

常见问题必读帮助文件
鸿宇官网

鸿宇官网

鸿宇科技官方网站
鸿宇教程库

鸿宇教程库

鸿宇科技官方教程
功能反馈与建议

功能反馈与建议

BUG反馈问题建议
鸿宇淘宝店铺

鸿宇淘宝店铺

鸿宇官方唯一淘宝店铺
旺迈特官网

旺迈特官网

B2B2C新零售智慧生态电商系统
旺迈特演示站点

旺迈特演示站点

新零售智慧生态电商系统
QQ在线客服

QQ在线客服

程序二次开发/功能定制/系统问题解决
ECS新用户专享

ECS新用户专享

阿里云爆款服务器1核2G仅需96.90元/年,2核4G仅需565.80元/年
ECS老用户关怀计划

ECS老用户关怀计划

云服务器ECS老用户升级四重礼遇「 ECS实例规格变配/升级 」、「 实例续费 」、「 带宽升级 」、「 云盘扩容 」享6.5折限时折扣!
阿里云最新优惠活动

阿里云最新优惠活动

上云优惠聚集地『 新老用户同享』

执行composer update 命令提示Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 150994944 bytes)

ComposerShadow 发表了文章 • 0 个评论 • 114 次浏览 • 2020-08-11 10:24 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768
解决方案:php.ini 里默认的 memory_limit 为 128M ,此时执行composer update 命令失败,原因内存不足,修改 php.ini 文件中 memory_limit 为 4096M(或更高) ,再次执行 composer update 更新成功。composer 版本为最新,镜像为阿里云Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 150994944 bytes) in phar://D:/Tools/phpstudy_pro/Extensions/composer/composer.phar/src/Composer/DependencyResolver/RuleSet.php on line 90

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
  查看全部
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768
解决方案:php.ini 里默认的 memory_limit 为 128M ,此时执行composer update 命令失败,原因内存不足,修改 php.ini 文件中 memory_limit 为 4096M(或更高) ,再次执行 composer update 更新成功。composer 版本为最新,镜像为阿里云
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 150994944 bytes) in phar://D:/Tools/phpstudy_pro/Extensions/composer/composer.phar/src/Composer/DependencyResolver/RuleSet.php on line 90

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.

 

ECshop鸿宇小京东 - 修复店铺页报错 [Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in]

鸿宇教程库Shadow 发表了文章 • 0 个评论 • 203 次浏览 • 2020-08-10 12:38 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768

解决方案:下载附件
 
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768

解决方案:下载附件
 

ECshop鸿宇小京东 - 首页楼层号(1F/2F/3F/4F/5F/6F/7F/8F)不显示问题

鸿宇教程库Shadow 发表了文章 • 0 个评论 • 178 次浏览 • 2020-08-09 18:00 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768
解决方案:楼层号不显示问题,是因为系统将每个楼层对应的分类id写成固定的了,我们只需要将每个楼层对应的分类id即可

附录:ECshop鸿宇小京东 - 分类id查看/分类链接地址获取

1、打开文件 themes/68ecshopcom_360buy/library/cat_goods.lbi 约20-38行




 
2、将 $goods_cat.id eq 后面的数字改成每个楼层对应的分类id即可,比如我们1F对应的分类id是18,那么只需要修改成 $goods_cat.id eq 18 即可。2F 对应的分类id是 20 ,那么找到2F 对应的代码修改为 $goods_cat.id eq 20




 
  查看全部
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768
解决方案:楼层号不显示问题,是因为系统将每个楼层对应的分类id写成固定的了,我们只需要将每个楼层对应的分类id即可

附录:ECshop鸿宇小京东 - 分类id查看/分类链接地址获取

1、打开文件 themes/68ecshopcom_360buy/library/cat_goods.lbi 约20-38行
Snipaste_2020-08-09_17-56-21.png

 
2、将 $goods_cat.id eq 后面的数字改成每个楼层对应的分类id即可,比如我们1F对应的分类id是18,那么只需要修改成 $goods_cat.id eq 18 即可。2F 对应的分类id是 20 ,那么找到2F 对应的代码修改为 $goods_cat.id eq 20
QQ截图20200809180029.png

 
 

ECshop鸿宇小京东 - 修复手机端店铺街无法向下滑动问题

鸿宇教程库Shadow 发表了文章 • 0 个评论 • 121 次浏览 • 2020-08-08 16:52 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768
解决方案:下载附件,直接覆盖
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术QQ号:1527200768
解决方案:下载附件,直接覆盖

ECshop鸿宇小京东 - 修复电脑端首页搜索框下方关键词文字样式显示不全问题

鸿宇教程库Shadow 发表了文章 • 0 个评论 • 123 次浏览 • 2020-08-07 17:54 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术客服QQ号:1527200768
解决方案:下载附件,直接覆盖
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术客服QQ号:1527200768
解决方案:下载附件,直接覆盖

ECshop鸿宇小京东 - 修复阿里云提示发现后门(Webshell)文件app/custom.php问题

鸿宇教程库Shadow 发表了文章 • 0 个评论 • 162 次浏览 • 2020-08-07 17:52 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术客服QQ号:1527200768
解决方案:下载附件,直接覆盖
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
技术客服QQ号:1527200768
解决方案:下载附件,直接覆盖

ECshop鸿宇小京东 - 订单导出乱码问题解决方案

鸿宇教程库Shadow 发表了文章 • 0 个评论 • 185 次浏览 • 2020-07-17 11:50 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
 
1、先用notepad++软件打开导出的订单文件(orderexcel)
2、然后依次选择:编码->使用UTF-8编码->保存文件。
3、再用表格软件打开文件,乱码问题解决,显示正常。
  查看全部
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇QQ群:90664526
 
1、先用notepad++软件打开导出的订单文件(orderexcel)
2、然后依次选择:编码->使用UTF-8编码->保存文件。
3、再用表格软件打开文件,乱码问题解决,显示正常。
 

Java Maven 源改为国内阿里云镜像

JavaShadow 发表了文章 • 0 个评论 • 272 次浏览 • 2020-06-25 16:31 • 来自相关话题

由于众所周知的原因,maven的库在中国大陆非常慢。我在百度上搜到的大部分文章都是直接在~/.m2/settings.xml 加入以下内容 <mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>其实这样设置,我发现其实镜像并没有改变,还是maven的中央库。在maven 库的官网上http://maven.apache.org/settings.html,是建议我们这样设置的(文章底部提供settings.xml文件下载压缩包)<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云谷歌仓库</name>
<url>https://maven.aliyun.com/repository/google</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云阿帕奇仓库</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云spring仓库</name>
<url>https://maven.aliyun.com/repository/spring</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云spring插件仓库</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>
</mirrors>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>这样设置之后,我发现maven库确实改成了阿里云库。
 
转载出处: https://zhuanlan.zhihu.com/p/71998219

  查看全部
由于众所周知的原因,maven的库在中国大陆非常慢。我在百度上搜到的大部分文章都是直接在~/.m2/settings.xml 加入以下内容
  <mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
其实这样设置,我发现其实镜像并没有改变,还是maven的中央库。在maven 库的官网上http://maven.apache.org/settings.html,是建议我们这样设置的(文章底部提供settings.xml文件下载压缩包)
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云谷歌仓库</name>
<url>https://maven.aliyun.com/repository/google</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云阿帕奇仓库</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云spring仓库</name>
<url>https://maven.aliyun.com/repository/spring</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云spring插件仓库</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>
</mirrors>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
这样设置之后,我发现maven库确实改成了阿里云库。
 
转载出处: https://zhuanlan.zhihu.com/p/71998219

 

ECshop鸿宇小京东 - 二级域名切换跳转时session不同步,解决session无法共享同步导致无法登陆的问题

小京东Shadow 发表了文章 • 0 个评论 • 297 次浏览 • 2020-06-19 23:45 • 来自相关话题

 
ecshop 二级域名切换时,比如你的域名是www.example.com  ,跳转到abc.example.com,那么会导致session无法获取到而无法登陆的问题。

解决方法,找到includes/init.php

1、在
@ini_set('session.cache_expire',  180);

前,添加如下代码,将.example.com换成你的域名,注意有一个“.”符号 ecshop模板
@ini_set("session.cookie_domain",'.example.com');

2、找到你data/config.php

将如下代码

$cookie_domain    = "";

替换为:

$cookie_domain    = ".example.com";

3、此时其实已经生效,但你的本地会有缓存,无法看到效果,清除一下浏览器缓存。此时问题已经解决! 查看全部
 
ecshop 二级域名切换时,比如你的域名是www.example.com  ,跳转到abc.example.com,那么会导致session无法获取到而无法登陆的问题。

解决方法,找到includes/init.php

1、在
@ini_set('session.cache_expire',  180);

前,添加如下代码,将.example.com换成你的域名,注意有一个“.”符号 ecshop模板
@ini_set("session.cookie_domain",'.example.com');

2、找到你data/config.php

将如下代码

$cookie_domain    = "";

替换为:

$cookie_domain    = ".example.com";

3、此时其实已经生效,但你的本地会有缓存,无法看到效果,清除一下浏览器缓存。此时问题已经解决!

大商创 - 微信支付在微信App内不显示按钮问题解决方案

大商创Shadow 发表了文章 • 0 个评论 • 557 次浏览 • 2020-06-17 18:13 • 来自相关话题

 
一、问题原因:
 
1. 无法获取微信openid:文件 mobile/app/Plugins/payment/wxpay.php 中 get_code() 函数无法正确获取 openid 造成按钮不显示问题。
2.生成订单号逻辑错误, 会造成微信接口返回订单号重复错误。

二、解决方案:
 
1. 打开文件 mobile/app/Plugins/payment/wxpay.php 约 55 行,修改get_code()函数代码:public function get_code($order, $payment)
{
include_once BASE_PATH . 'Helpers/payment_helper.php';
$this->payment = $payment;
$options = array('appid' => $this->payment['wxpay_appid'], 'mch_id' => $this->payment['wxpay_mchid'], 'key' => $this->payment['wxpay_key']);
if (isset($this->payment['wxpay_sub_mch_id']) && !empty($this->payment['wxpay_sub_mch_id'])) {
$options['sub_mch_id'] = $this->payment['wxpay_sub_mch_id'];
}

$weObj = new \App\Extensions\Wechat($options);
$order_amount = $order['order_amount'] * 100;

if (!is_wechat_browser()) {
$scene_info = json_encode(array(
'h5_info' => array('type' => 'Wap', 'wap_url' => __URL__, 'wap_name' => C('shop.shop_name'))
));
$this->setParameter('body', $order['order_sn']);
$this->setParameter('out_trade_no', $order['order_sn'] . time() . 'A' . $order['log_id']);
$this->setParameter('total_fee', $order_amount);
$this->setParameter('spbill_create_ip', $this->get_client_ip());
$this->setParameter('notify_url', notify_url(basename(__FILE__, '.php')));
$this->setParameter('trade_type', 'MWEB');
$this->setParameter('scene_info', $scene_info);
$respond = $weObj->PayUnifiedOrder($this->parameters);

if (isset($respond['mweb_url'])) {
if ($respond['result_code'] == 'SUCCESS') {
$redirect_url = __URL__ . '/respond.php?code=wxpay&type=wxh5&log_id=' . $order['log_id'];
}

$button = '<a class="box-flex btn-submit" type="button" onclick="window.open(\'' . $respond['mweb_url'] . '&redirect_url=' . urlencode($redirect_url) . '\')">微信支付</a>';
} else {
$button = '';
return false;
}
} else {
$openid = '';
if (isset($_SESSION['openid']) && !empty($_SESSION['openid'])) {
$openid = $_SESSION['openid'];
} else {
if (isset($_SESSION['openid_base']) && !empty($_SESSION['openid_base'])) {
$openid = $_SESSION['openid_base'];
} else {
//return false;
$openid = $this->getOpenid();
}
}

$this->setParameter('openid', $openid);
$this->setParameter('body', $order['order_sn']);
$this->setParameter('out_trade_no', $order['order_sn'] . time() . 'A' . $order['log_id']);
$this->setParameter('total_fee', $order_amount);
$this->setParameter('spbill_create_ip', $this->get_client_ip());
$this->setParameter('notify_url', notify_url(basename(__FILE__, '.php')));
$this->setParameter('trade_type', 'JSAPI');
$respond = $weObj->PayUnifiedOrder($this->parameters, true);
$jsApiParameters = json_encode($respond);
$js = "<script language=\"javascript\">\r\n function jsApiCall(){WeixinJSBridge.invoke(\"getBrandWCPayRequest\"," . $jsApiParameters . ',function(res){if(res.err_msg == "get_brand_wcpay_request:ok"){location.href="' . return_url(basename(__FILE__, '.php')) . '&status=1&log_id=' . $order['log_id'] . '"}else{location.href="' . return_url(basename(__FILE__, '.php')) . '&status=0&log_id=' . $order['log_id'] . "\"}})};function callpay(){if (typeof WeixinJSBridge == \"undefined\"){if( document.addEventListener ){document.addEventListener(\"WeixinJSBridgeReady\", jsApiCall, false);}else if (document.attachEvent){document.attachEvent(\"WeixinJSBridgeReady\", jsApiCall);document.attachEvent(\"onWeixinJSBridgeReady\", jsApiCall);}}else{jsApiCall();}}\r\n </script>";
$button = '<a class="box-flex btn-submit" type="button" onclick="callpay();">微信支付</a>' . $js;
}

return $button;
}2. 打开文件 mobile/app/Plugins/payment/wxpay.php 约 365 行,修改getOpenid()函数代码:private function getOpenid()
{
if (!isset($_GET['code'])) {
$redirectUrl = urlencode('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . (!empty($_SERVER['QUERY_STRING']) ? '?' : '') . $_SERVER['QUERY_STRING']);
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $this->payment['wxpay_appid'] . '&redirect_uri=' . $redirectUrl . '&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect';
header('Location: ' . $url);
exit();
} else {
$code = $_GET['code'];
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $this->payment['wxpay_appid'] . '&secret=' . $this->payment['wxpay_appsecret'] . '&code=' . $code . '&grant_type=authorization_code';

/*
$result = \App\Extensions\Http::doGet($url);

if ($result) {
$json = json_decode($result);
if (isset($json['errCode']) && $json['errCode']) {
return false;
}

$_SESSION['openid_base'] = $json['openid'];
return $json['openid'];
}

return false;
*/

$get_token_url = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $get_token_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res, true);
$openid = $json_obj['openid'];
$_SESSION['openid'] = $openid;
return $openid;
}
}
 3. 代码修改重点











 
  查看全部
 
一、问题原因:
 
1. 无法获取微信openid:文件 mobile/app/Plugins/payment/wxpay.php 中 get_code() 函数无法正确获取 openid 造成按钮不显示问题。
2.生成订单号逻辑错误, 会造成微信接口返回订单号重复错误。

二、解决方案:
 
1. 打开文件 mobile/app/Plugins/payment/wxpay.php 约 55 行,修改get_code()函数代码:
public function get_code($order, $payment)
{
include_once BASE_PATH . 'Helpers/payment_helper.php';
$this->payment = $payment;
$options = array('appid' => $this->payment['wxpay_appid'], 'mch_id' => $this->payment['wxpay_mchid'], 'key' => $this->payment['wxpay_key']);
if (isset($this->payment['wxpay_sub_mch_id']) && !empty($this->payment['wxpay_sub_mch_id'])) {
$options['sub_mch_id'] = $this->payment['wxpay_sub_mch_id'];
}

$weObj = new \App\Extensions\Wechat($options);
$order_amount = $order['order_amount'] * 100;

if (!is_wechat_browser()) {
$scene_info = json_encode(array(
'h5_info' => array('type' => 'Wap', 'wap_url' => __URL__, 'wap_name' => C('shop.shop_name'))
));
$this->setParameter('body', $order['order_sn']);
$this->setParameter('out_trade_no', $order['order_sn'] . time() . 'A' . $order['log_id']);
$this->setParameter('total_fee', $order_amount);
$this->setParameter('spbill_create_ip', $this->get_client_ip());
$this->setParameter('notify_url', notify_url(basename(__FILE__, '.php')));
$this->setParameter('trade_type', 'MWEB');
$this->setParameter('scene_info', $scene_info);
$respond = $weObj->PayUnifiedOrder($this->parameters);

if (isset($respond['mweb_url'])) {
if ($respond['result_code'] == 'SUCCESS') {
$redirect_url = __URL__ . '/respond.php?code=wxpay&type=wxh5&log_id=' . $order['log_id'];
}

$button = '<a class="box-flex btn-submit" type="button" onclick="window.open(\'' . $respond['mweb_url'] . '&redirect_url=' . urlencode($redirect_url) . '\')">微信支付</a>';
} else {
$button = '';
return false;
}
} else {
$openid = '';
if (isset($_SESSION['openid']) && !empty($_SESSION['openid'])) {
$openid = $_SESSION['openid'];
} else {
if (isset($_SESSION['openid_base']) && !empty($_SESSION['openid_base'])) {
$openid = $_SESSION['openid_base'];
} else {
//return false;
$openid = $this->getOpenid();
}
}

$this->setParameter('openid', $openid);
$this->setParameter('body', $order['order_sn']);
$this->setParameter('out_trade_no', $order['order_sn'] . time() . 'A' . $order['log_id']);
$this->setParameter('total_fee', $order_amount);
$this->setParameter('spbill_create_ip', $this->get_client_ip());
$this->setParameter('notify_url', notify_url(basename(__FILE__, '.php')));
$this->setParameter('trade_type', 'JSAPI');
$respond = $weObj->PayUnifiedOrder($this->parameters, true);
$jsApiParameters = json_encode($respond);
$js = "<script language=\"javascript\">\r\n function jsApiCall(){WeixinJSBridge.invoke(\"getBrandWCPayRequest\"," . $jsApiParameters . ',function(res){if(res.err_msg == "get_brand_wcpay_request:ok"){location.href="' . return_url(basename(__FILE__, '.php')) . '&status=1&log_id=' . $order['log_id'] . '"}else{location.href="' . return_url(basename(__FILE__, '.php')) . '&status=0&log_id=' . $order['log_id'] . "\"}})};function callpay(){if (typeof WeixinJSBridge == \"undefined\"){if( document.addEventListener ){document.addEventListener(\"WeixinJSBridgeReady\", jsApiCall, false);}else if (document.attachEvent){document.attachEvent(\"WeixinJSBridgeReady\", jsApiCall);document.attachEvent(\"onWeixinJSBridgeReady\", jsApiCall);}}else{jsApiCall();}}\r\n </script>";
$button = '<a class="box-flex btn-submit" type="button" onclick="callpay();">微信支付</a>' . $js;
}

return $button;
}
2. 打开文件 mobile/app/Plugins/payment/wxpay.php 约 365 行,修改getOpenid()函数代码:
private function getOpenid()
{
if (!isset($_GET['code'])) {
$redirectUrl = urlencode('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . (!empty($_SERVER['QUERY_STRING']) ? '?' : '') . $_SERVER['QUERY_STRING']);
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $this->payment['wxpay_appid'] . '&redirect_uri=' . $redirectUrl . '&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect';
header('Location: ' . $url);
exit();
} else {
$code = $_GET['code'];
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $this->payment['wxpay_appid'] . '&secret=' . $this->payment['wxpay_appsecret'] . '&code=' . $code . '&grant_type=authorization_code';

/*
$result = \App\Extensions\Http::doGet($url);

if ($result) {
$json = json_decode($result);
if (isset($json['errCode']) && $json['errCode']) {
return false;
}

$_SESSION['openid_base'] = $json['openid'];
return $json['openid'];
}

return false;
*/

$get_token_url = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $get_token_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res, true);
$openid = $json_obj['openid'];
$_SESSION['openid'] = $openid;
return $openid;
}
}

 3. 代码修改重点

Snipaste_2020-06-19_11-06-59.png


Snipaste_2020-06-19_11-07-42.png