Fecmall

第 2 位会员

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

你加断点 exit;试试,从入口文件index.php开始。看看到底哪个位置出问题了

第一次安装 显示白页7年前

打开 @app/web/index.php 把 error_reporting(E_ALL || ~E_NOTICE); 注释掉看看,估计是你的数组配置出问题了。

./init 选择dev还是production 有啥区别7年前

没有太大的区别,熟悉Yii2,你就会知道,

开发环境开启了debug的功能,也就是在页面显示报错。

如果你是develop安装的,到了线上你要切换product模式,那么,进入到 @app/web/index.php

将:

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

改成

defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
fecshop 布局文件layout不起作用7年前

1.还是用layout,只不过这个layout里面是空的,用 blank layout

https://github.com/fecshop/yii2_fecshop/blob/master/app/appfront/theme/base/front/layouts/blank.php

在controller的相应action的第一行加入代码:

Yii::$service->page->theme->layoutFile = 'blank.php';
购物车相同产品没有合并7年前

我的demo测试了一下,是可以合并的,没有问题的

https://fecshop.appfront.fancyecommerce.com

你在这里测试试试,如果测试出来问题,描述一下你的问题步骤来重现一下,如果可以重现,我才能发现这个问题。

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

nginx做一个跳转就可以了

server {
        listen       80;
        listen 443 ssl http2;
        #ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        #ssl_certificate ssl/market_onfancy_com.crt;
        #ssl_certificate_key ssl/server.key;
        server_name fecshop.com;
        return 301 $scheme://www.fecshop.com$request_uri;
}
求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

@Blueyii #15楼 你说的那个大小写,是你自己的代码,还是fecshop的bug?

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

你本地是linux吗?都是一样的环境,怎么会出大小写错误?

你先自己尝试解决下把

  1. form是否传递了_csrf
  2. 传递的_csrf为什么接收不到。
求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

@Blueyii #11楼 难道你的服务器有特殊的配置或者拦截?

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

@Blueyii #10楼 剩下的,你自己找找问题吧,思路已经说明白了

解决后,贴下解决思路

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

代码位置在:

https://github.com/fecshop/yii2_fecshop/blob/master/app/appfront/theme/base/front/payment/paypal/express/review.php

<form action="<?= Yii::$service->url->getCurrentUrl(); ?>" method="post" id="onestepcheckout-form">
			<?= \fec\helpers\CRequest::getCsrfInputHtml(); ?>
			<fieldset style="margin: 0;" class="group-select">

<?= \fec\helpers\CRequest::getCsrfInputHtml(); ?>: 这个代码用于生成csrf

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

paypal express 跳转回到网站后。

用google浏览器查看一下源代码看看,是否有csrf

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

然后你点击Place Order Now 按钮,提交地址是当前地址,就会有csrf参数 ,然后执行的代码为:

if ($_csrf) {
            $status = $this->getBlock('placeorder')->getLastData();
            if ($status) {
                return;
            }
        }
求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前
public function actionReview()
    {
        $_csrf = Yii::$app->request->post('_csrf');
        if ($_csrf) {
            $status = $this->getBlock('placeorder')->getLastData();
            if ($status) {
                return;
            }
        }
        $data = $this->getBlock()->getLastData();
        if (is_array($data) && !empty($data)) {
            return $this->render($this->action->id, $data);
        } else {
            return $data;
        }
    }

从paypal跳转回来是没有csrf参数的,因此执行的是下面的部分:

$data = $this->getBlock()->getLastData();
        if (is_array($data) && !empty($data)) {
            return $this->render($this->action->id, $data);
        } else {
            return $data;
        }
求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

如果有报错,会报错:

如果没有报错,会跳转到支付成功页面:

求救!通过Paypal快速支付进来,表单不能返回Paypal支付...7年前

你看下官网的演示,没有问题啊,支付成功后,应该要跳转到支付成功页面,你加断点试试,找找原因。

打印 paypal 的返回信息,看看具体原因在哪里

Failed to open redis DB connection (localhost:6379, database=1): 13 - Permission denied7年前

redis配置部分,localhost 改成127.0.0.1 试试

Failed to open redis DB connection (localhost:6379, database=1): 13 - Permission denied7年前

就是redis连接的问题

配置了密码啥的,redis重启一下试试

Your Site Analytics