响应式模板下支付宝支付如何区分pc还是手机?

fecmall支付宝支付 · yshzww · 于 3年前 发布 · 1553 次阅读

使用官方的响应式模板,因此没有独立的h5网站,在pc网站的配置文件appfront\config\fecshop_local_services\Payment.php 中设置

devide'=>'pc'

的情况下,手机页面也用的是pc网站的支付方式,不能引导打开支付宝app。 如果设为wap,则有相反的问题。

设想了二个办法

1.直接修改代码,用代码来决定有pc还是wap
2.增加一个新的支付方式,代码和原来的支付宝基本一样,这样二个支付方式,一个是pc,一个wap让用户自己选择。

这二个办法都不太好,有没有更好的办法?

共收到 8 条回复
Fecmall#13年前 0 个赞

关于判断pc还是html5,可以用函数来判断

$mobileDetect = Yii::$service->helper->mobileDetect;

// 手机
if ($mobileDetect->isMobile()) {

}
// 平板
if ($mobileDetect->isTablet()) {

}
yshzww#23年前 0 个赞

响应式网站,手机用的也是appfront

Fecmall#33年前 0 个赞

@yshzww [#2楼](#comment2)

关于判断pc还是html5,可以用函数来判断

$mobileDetect = Yii::$service->helper->mobileDetect;

// 手机
if ($mobileDetect->isMobile()) {

}
// 平板
if ($mobileDetect->isTablet()) {

}

进而去修改 devide

目前对自适应模板,只能您自己二次开发搞

Fecmall#43年前 0 个赞

建议不要用自适应模板了,目前应用市场的自适应模板只有3个,而且是做跨境的,

跨境的支付一般都没有问题,如果做国内电商,建议选择fecyo,如果跨境电商,建议使用fecro

这2个都是pc和h5分开的,处理起来比较好处理。

yshzww#53年前 0 个赞

这个代码我知道的,问题是这样可能要直接修改 vendor\fancyecommerce\fecshop\services\payment\Alipay.php 的代码

if ($this->devide == 'wap') {
            $this->_alipayRequest   = new \AlipayTradeWapPayRequest();
            $this->_productCode     = 'QUICK_WAP_WAY';
        } elseif ($this->devide == 'pc') {
            $this->_productCode     = 'FAST_INSTANT_TRADE_PAY';
            $this->_alipayRequest   = new \AlipayTradePagePayRequest();
        } else {
            Yii::$service->helper->errors->add('you must config param [devide] in payment alipay service');
            
            return;
        }

有可以不修改核心的代码方法吗?

yshzww#63年前 0 个赞

如果能增加一个配置项 auto 的话就好了

yshzww#83年前 0 个赞

多谢

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics