Fecmall

第 2 位会员

会员
个人信息
  • 加入于 2017-05-31 17:38:45
  • 城市 Qingdao
  • GitHub https://github.com/fecshop
  • 最后登录时间 2天前
  • 签名 净化自己,潜心编码
个人简介
Terry,Fecmall开源产品作者,12年电商经验一线程序员开发者,擅长规划产品,架构设计。
个人成就
  • 发表文章次数 744
  • 发布回复次数 5760
  • 个人主页浏览次数 683
文档中的 Fecyo Config 参数配置无法找到4年前

应用市场安装应用文档:http://www.fecmall.com/doc/fecshop-guide/addons/cn-2.0/guide-fecmall-addons-install.html#8

您应该是没有仔细看文档第8部分,没有刷缓存。

fecyo安装不上4年前

1.应用市场安装应用文档:http://www.fecmall.com/doc/fecshop-guide/addons/cn-2.0/guide-fecmall-addons-install.html

请仔细看问文档

2.应用安装安装是一个ajax请求,打开chrome,看一下具体的ajax报错,贴出来具体的报错是什么?

3.90%的问题是php或nginx超时导致的,需要设置超时时间,详细参看:http://www.fecmall.com/topic/2103

4.当然,发生这个的原因有很多,譬如@unliu #1楼 的这种缺乏zip扩展也会导致安装失败,您先用chrome 看一下ajax报错

Mysql数据库配置错误4年前

1.报错信息could not find driver,请写到标题里面,方便遇到这个问题的人,通过报错信息搜索

2.百度搜索could not find driver,很多资料,我找了几个您参考一下

https://www.fujieace.com/php/ould-not-find-driver.html

https://blog.csdn.net/weixin_30699955/article/details/97695559

3.如果解决了问题,请分享一下如何解决的,帮助后面遇到这个问题的人

应用市场安装应用报错:Call to undefined function fecshop\services\helper\zip_open()4年前

@unliu #3楼 上面已经回复你了

请安装php的zip扩展!!!!!!!

请安装php的zip扩展!!!!!!!

请安装php的zip扩展!!!!!!!

Fecyo加入购物车和结算点击无反应4年前

1.除了fecyo扩展包,是否安装了其他的扩展包?

2.加入购物车是ajax操作,您用chrome看一下,ajax的结果,报错信息是什么。

PC端(appfront)的商城里面的功能是没有提供API的吗?4年前

@LHTong #2楼

1.该说的都说了,你仔细理解,你先安装fecmall后,自己看代码自己理解吧。

2.言简意赅!!!你直接用appserver的api就能满足你的需求

PC端(appfront)的商城里面的功能是没有提供API的吗?4年前

1.pc端的api? pc端不需要api!

2.fecmall有前后端分离的入口,appserver入口,微信小程序,vue等使用这里的api

appserver api 文档:http://www.fecmall.com/doc/fecshop-guide/develop/cn-2.0/guide-fecmall-server.html

购物车结算界面重量显示问题4年前

那个系统,那个入口,那个url,写清楚问题背景

写作文,不也得写个时间地点背景?

Yii::$service->info->coll() 这样来查询数据,能实现group统计查询吗4年前

1.关于mongodb的聚合,有两种 MapReduceAggregate

MapReduce可以计算很多数据,有点像大数据工具,是离线统计的工具,优点是计算限制少,可以对千万级别(更多没有测试过)进行聚合统计,限制少,缺点就是耗时比较长,因此一般用于做离线数据统计,fecmall 的FA统计系统就是用的mongodb的mapreduce

Aggrate统计数据非常快,适合及时性统计,即时相应非常快,但是限制多,不适合过多的数据统计,而且非常耗费内存

2.Yii2框架有mongodb扩展,对其进行了一些封装,fecmall的mongodb部分,使用的是yii2的mongodb扩展:https://github.com/yiisoft/yii2-mongodb

3.关于Aggregate资料:

https://docs.mongodb.com/manual/aggregation/

https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/

https://www.cnblogs.com/chenpingzhao/p/7978905.html

有兴趣研究一下吧。

FecYo copy(xxx): failed to open stream: Resource temporarily unavailable4年前

1.这个应该是环境问题,可能是硬件内存太小

搜了一下资料:

它可能只是以下几项之一:

PHP进程内存不足,文件句柄或类似内容
PHP环境自身的局限性以某种方式被超越
文件本身有一些限制,例如SELinux(安全性增强Linux)限制。

2.参考资料:

https://stackoverflow.com/questions/13445932/php-fopen-failed-to-open-stream-resource-temporarily-unavailable

FecYo copy(xxx): failed to open stream: Resource temporarily unavailable4年前

1.您这个报错,是在后台Error Hander看到的信息把?

Error Handle:http://www.fecmall.com/doc/fecshop-guide/instructions/cn-2.0/guide-fecmall_error_handler.html

2.您是本地,还是服务器环境,内存多大? php版本?

fecyo微信内部h5支付(JsApi支付)付款成功,但商城订单状态仍为未支付4年前

首先,支付没有问题,演示地址测试微信支付都是没有问题的,这个应该更多的是您的配置问题,微信的东西配置繁杂,用起来还是得注意很多东西

1.这个应该是一个典型支付问题,您把标题改成fecyo微信内部h5支付(JsApi支付)付款成功,但商城订单状态仍为未支付

2.资料,微信支付文档:http://www.fecmall.com/doc/fecshop-guide/instructions/cn-2.0/guide-fecmall_payment_wx_method.html 您仔细看一下,仔细排查设置是否完成

3.当然不排除文档可能某些点没有描述清楚,这个需要您自己排查一下代码,定位问题, 需要注意的是,微信内部支付是Jsapi支付

4.微信支付controller文件:@fecyo\app\apphtml5\modules\Payment\controllers\WxpayjsapiController

@fecyo的文件路径 addons/fecmall/fecyo

微信支付成功后,微信会给fecmall发送一个消息

发送消息的url,是在支付start已经将接收微信消息的url作为参数传递给微信支付, 付款成功后,微信支付往这个url发送支付信息,更改fecmall订单状态,微信内部支付,这个url是payment/wxpayjsapi/ipn,也就是这个controller的action方法


    public function actionIpn()
    {
        Yii::$service->payment->wxpay->ipn();
    }

3.1执行payment wxpay services里面的ipn()方法

打开文件@fecshop\services\payment\WxpayJsApi

/**
     * 接收IPN消息的url,接收微信支付的异步消息,进而更改订单状态。
     */
    public function ipn()
    {
        $notifyFile       = Yii::getAlias('@fecshop/services/payment/wxpay/notify.php');
        require_once($notifyFile);
        \Yii::info('begin ipn', 'fecshop_debug');
        $notify = new \PayNotifyCallBack();
        $notify->Handle(false);
    }

3.2打开文件@fecshop/services/payment/wxpay/notify.php,下面的函数,是接收到微信支付付款消息,验证消息安全后执行的方法:

//重写回调处理函数
    public function NotifyProcess($data, &$msg)
    {
        \Yii::info("call back:" . json_encode($data), 'fecshop_debug');
        $notfiyOutput = [];
        if (!array_key_exists("transaction_id", $data)) {
            $msg = "输入参数不正确";
            
            return false;
        }
        //查询订单,判断订单真实性
        if (!$this->Queryorder($data["transaction_id"])) {
            $msg = "订单查询失败";
            
            return false;
        }
        $arr = $this->getDataArray($data);
        
        return \Yii::$service->payment->wxpay->ipnUpdateOrder($arr);
    }
    

3.3在上面的函数最后,执行\Yii::$service->payment->wxpay->ipnUpdateOrder($arr); 这个就是更新订单信息的函数

3.4打开文件@fecshop\services\payment\Wxpay

public function ipnUpdateOrder($data)
    {
        \Yii::info('ipn order process', 'fecshop_debug');
        $incrementId    = $data['out_trade_no'];
        $transaction_id = $data['transaction_id'];
        $total_fee      = $data['total_fee'];
        $fee_type       = $data['fee_type'];
        if ($incrementId && $transaction_id && $total_fee) {
            $this->_order = Yii::$service->order->getByIncrementId($incrementId);
            Yii::$service->payment->setPaymentMethod($this->_order['payment_method']);
            $base_grand_total = $this->_order['base_grand_total'];
            $order_total_amount = Yii::$service->page->currency->getCurrencyPrice($base_grand_total, 'CNY');
            \Yii::info('check order totla amouont['.($order_total_amount * 100).' == '.$total_fee.']', 'fecshop_debug');
            // 微信支付的人民币单位为分
            if(bccomp($order_total_amount * 100, $total_fee) !== 0){
                
                return false;
            }
            \Yii::info('updateOrderInfo', 'fecshop_debug');
            // 更改订单状态
            if ($this->updateOrderInfo($incrementId, $transaction_id, false)) { //支付成功调用服务执行订单状态改变,清空购物车和发送邮件操作
                \Yii::info('updateOrderInfo Success', 'fecshop_debug');
                
                return true;
            }
        }
    }

函数updateOrderInfo如下,也是该文件

/**
     * 微信 支付成功后,对订单的状态进行修改
     * 如果支付成功,则修改订单状态为支付成功状态。
     * @param $out_trade_no | string , fecshop的订单编号 increment_id
     * @param $trade_no | 微信支付交易号
     * @param isClearCart | boolean 是否清空购物车
     *
     */
    protected function updateOrderInfo($out_trade_no, $trade_no, $isClearCart=true)
    {
        if (!empty($out_trade_no) && !empty($trade_no)) {
            if ($this->paymentSuccess($out_trade_no, $trade_no)) {
                // 清空购物车
                if ($isClearCart) {
                    Yii::$service->cart->clearCartProductAndCoupon();
                }
                
                return true;
            }
        } else {
            Yii::$service->helper->errors->add('wxpay payment fail,resultCode: {result_code}', ['result_code' => $resultCode]);
            
            return false;
        }
    }

后面的代码您自己找吧,已经把微信支付涉及的文件给您贴清楚了。

!!一定改一下标题,后面遇到这个问题的童鞋可以参考这里排查具体问题

无 已解决4年前

1.本人管理论坛,就这么个规则,发帖子,描述清楚

2.解决了问题,就分享出来你如何解决的问题,帮助更多遇到这个问题的人,分享才是意义所在。

3.不同意这个规则是你的自由,不同意就不要来发帖了,你我都好,不欢迎。

fecmall 安装报错:Uncaught PDOException: PDO::__construct(): php_network_getaddresses: getaddrinfo failed4年前

检查安装路径是否正确

http://www.xxx.com/install/ 安装路径是 /install , 安装的域名路径填写正确

Yii 框架获取GET参数时为什么会带入pathinfo4年前

测试了一下:

public function actionTest()
    {
        // http://fecyo.fecshop.com/cms/home/test?order_amount=999&currency=CNY
        $param = Yii::$app->request->get();
        print_r($param);
        exit;
    }

打印:

array(2) { ["order_amount"]=> string(3) "999" ["currency"]=> string(3) "CNY" }

没有问题,你是不是yii2的参数配置有问题?

Your Site Analytics