本文适用于小京东ECSMART的微信支付插件安装,获得方法见本文结尾。1部署代码下载的支付插件如图注意上传文件之前,请先备份mobileincludesinitphp文件。按照支付插件目录对应的结构上... 关键字: 微信支付,插件安装,小京东
本文适用于小京东/ECSMART的微信支付插件安装,获得方法见本文结尾。 1.部署代码下载的支付插件如图:
注意: 上传文件之前,请先备份mobile/includes/init.php;
\mobile\user.php;
\mobile\themesmobile\68ecshopcom_mobile\flow.dwt;
\mobile\themesmobile\68ecshopcom_mobile\library\user_order_detail.lbi文件。 按照支付插件目录对应的结构上传至服务器对应的位置上:
- 上传\includes\modules\payment\wxpay.php至服务器\mobile\includes\modules\payment\wxpay.php;
- 上传\languages\zh_cn\payment\wxpay.php至服务器\mobile\languages\zh_cn\payment\wxpay.php;
- 上传\respondwx.php至服务器\mobile\respondwx.php;
修改相关文件
修改\mobile\includes\init.php文件:找到if(!defined('INIT_NO_SMARTY') && gzip_enabled()) 行 ,在之前加入以下代码:
- if( is_wechat_browser()){
- if(!isset($_SESSION["openid"])||empty($_SESSION["openid"])){//openid为空
- if(isset($_COOKIE["openid"]) && !empty($_COOKIE["openid"])){
- $_SESSION["openid"]=$_COOKIE["openid"];
- }else{
- include_once (ROOT_PATH . 'includes/modules/payment/wxpay.php');
- $payObj = new wxpay();
- $payObj->getOpenId();
- }
- }
- }
- /* 检查是否是微信浏览器访问 */
- function is_wechat_browser(){
- $user_agent = $_SERVER['HTTP_USER_AGENT'];
- if (strpos($user_agent, 'MicroMessenger') === false){
- return false;
- } else {
- return true;
- }
- }
修改\mobile\user.php文件:搜索available_payment_list,在该语句前面加入:
- $payment = payment_info($order['pay_id']);
- include_once('includes/modules/payment/' . $payment['pay_code' . '.php');
- $pay_obj = new $payment['pay_code'];
- $pay_online = $pay_obj->get_code($order,unserialize_config($payment['pay_config']));
- $smarty->assign('pay_online', $pay_online);
修改\mobile\themesmobile\68ecshopcom_mobile\flow.dwt文件:搜索”pay_online”,找到如下语句:
- {if $pay_online}
- {if $iswei}
- {if $order.pay_id == 6}
- <div class="pay-btn">
- <a href="weixinpay.php?oid={$order.order_id}" class="sub-btn btnRadius">微支付</a>
- </div>
- {else}
- <div class="pay-btn">
- <a href="./pay/alipayapi.php?out_trade_no={$order.order_sn}&total_fee={$total.amount_formated_wap}" class="sub-btn btnRadius">去支付宝支付</a>
- </div>
- {/if}
- {else}
- <div class="pay-btn">
- <a href="./pay/alipayapi.php?out_trade_no={$order.order_sn}&total_fee={$total.amount_formated_wap}" class="sub-btn btnRadius">去支付宝支付</a>
- </div>
- {/if}
- {/if}
有些版本是这样: - {if $pay_online}
- {if $iswei}
- {if $order.pay_name eq "微信支付"}
- <div class="pay-btn">
- <a href="./includes/modules/payment/weixin.php?oid={$order.order_id}" class="sub-btn btnRadius">微支付</a>
- </div>
- {else}
- <div class="pay-btn">
- <a href="./pay/alipayapi.php?out_trade_no={$order.log_id}&total_fee={$total.amount_formated_wap}" class="sub-btn btnRadius">去支付宝支付</a>
- </div>
- {/if}
- {else}
- {if $order.pay_name eq "支付宝"}
- <div class="pay-btn">
- <a href="./pay/alipayapi.php?out_trade_no={$order.log_id}&total_fee={$total.amount_formated_wap}" class="sub-btn btnRadius">去支付宝支付</a>
- </div>
- {/if}
- {/if}
- {/if}
在{if $iswei}后增加一段语句 ,语义是 如果$order.pay_name eq "微信支付" 则直接输出{$pay_online}。示例如下(不懂的可以购买调试服务): - {if $pay_online}
- {if $iswei}
- {if $order.pay_name eq "微信手机支付"}
- {$pay_online}
- {else $order.pay_name eq "微信支付"}
- <div class="pay-btn">
- <a href="./includes/modules/payment/weixin.php?oid={$order.order_id}" class="sub-btn btnRadius">微支付</a>
- </div>
- {else}
- <div class="pay-btn">
- <a href="./pay/alipayapi.php?out_trade_no={$order.log_id}&total_fee={$total.amount_formated_wap}" class="sub-btn btnRadius">去支付宝支付</a>
- </div>
- {/if}
- {else}
- {if $order.pay_name eq "支付宝"}
- <div class="pay-btn">
- <a href="./pay/alipayapi.php?out_trade_no={$order.log_id}&total_fee={$total.amount_formated_wap}" class="sub-btn btnRadius">去支付宝支付</a>
- </div>
- {/if}
- {/if}
- {/if}
修改\mobile\themesmobile\68ecshopcom_mobile\library\user_order_detail.lbi文件:查找alipayapi,找到类似如下的语句:
- <a href="././pay/alipayapi.php?out_trade_no={$order.order_sn}&total_fee={$order.formated_order_amount_wap}" class="zhifu" style=" color:#fff; font-size:16px;">
添加一个判断 ,示例如下(不同的情况,代码有所变化): - {if $iswei}
- {if $order.pay_name eq "微信手机支付"}
- {$pay_online}
- {elseif $order.pay_name == "微信支付"}
- <a href="./includes/modules/payment/weixin.php?oid={$order.order_id}" class="zhifu" style=" color:#fff; font-size:16px;">微支付</a>
- {elseif $order.pay_name == "支付宝"}
- <a href="././pay/alipayapi.php?out_trade_no={$order.log_id}&total_fee={$order.formated_order_amount_wap}" class="zhifu" style=" color:#fff; font-size:16px;">去支付宝支付</a>
- {/if}
- {else}
- <a href="././pay/alipayapi.php?out_trade_no={$order.log_id}&total_fee={$order.formated_order_amount_wap}" class="zhifu" style=" color:#fff; font-size:16px;">去支付宝支付</a>
- {/if}
- 修改完成后,上传至服务器。
2.微信公众平台设置/参数获取微信公众平台设置/参数获取请参考微信支付平台设置及如何获取微信支付所需参数 3.安装、演示及调试请参考ecshop/ectouch最新版JSAPI微信支付V3安装帮助手册(v2.1.8)
|