zibll子比主题使用小呆易支付时无法调用支付问题

zibll子比主题使用小呆易支付时无法调用支付问题

admin
8月2日发布

///此段教程适用子比主题使用易支付的场景

起因:

因目前使用的易支付平台免跳转扫码 qrcode.php 接口变更为mapi.php 这就导致了到目前为止最新 7.4 所有版本的子比主题无法使用该平台的免跳转扫码功能。
搜遍所有网也没有人发过这个教程!!!PHP 一窍不通!!!这里感谢 CHATGPT 一路指导!!!人类之光!!!
该教程适用的条件有两条
一:你的平台可以用"https://payapi.xxxzf.com/pay/submit/订单号/"这种格式的URL打开收款界面
二:检查你收款平台的开发文档,找到 API 接口支付下面的返回结果有无:订单号 trade_no 的返回变量
如有,接着往下看,一共两步

第 ① 步,在主题文件编辑器找到以下路径
子比主题: <color=Red>zibpay-ajax.php (zibpay/functions/zibpay-ajax.php) 在第 500 行的位置插入以下代码

if (empty($result['qrcode'])) { $code_url = "https://payapi.xxxzf.com/pay/submit/" . $result['trade_no'] . "/"; $result['qrcode'] = $code_url; }

改完记得保存

第二步,在主题文件编辑器找到以下路径
子比主题:epay.class.php (zibpay/sdk/epay/epay.class.php)

function get_real_ip_address(){
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
return $_SERVER['REMOTE_ADDR'];
}

修改第 232 行的位置的代码

原代码$this->alipay_qrcode = $this->alipay_config['apiurl'] . 'qrcode.php?';
修改为$this->alipay_qrcode = $this->alipay_config['apiurl'] . 'mapi.php?';

在第 269 行的位置插入以下代码

$client_ip = get_real_ip_address(); $para_filter['clientip'] = $client_ip;

改完记得保存
最后在子比主题设置,商城&付费->收款接口里面,将易支付的 PC 端扫码支付打开,兼容模式不要开,点保存
现在,你可以优雅的使用易支付免跳转扫码收款啦~
完结撒花

第二个问题,使用子比主题里的易支付无法调用支付如何解决?

首先找到子比主题里易支付文件路径如:zibpay 这个文件里的 functions/zibpay-ajax.php
第 775 行代码如下:

//易支付发起支付
function zibpay_initiate_epay($order_data) { 
//获取参数 
$config = zibpay_get_payconfig('epay'); 
if (empty($config['apiurl']) || empty($config['partner']) || empty($config['key'])) { return array('error' => 1, 'msg' => '易支付缺少配置参数'); 
} 
require_once get_theme_file_path('/zibpay/sdk/epay/epay.class.php'); $payment_method = 'alipay' == $order_data['payment_method'] ? 'alipay' : 'wxpay'; 
$parameter = array( "pid" => trim($config['partner']), "type" => $payment_method, 'notify_url' => ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/epay/notify.php', 
'return_url' => add_query_arg(['redirect_url' => urlencode($order_data['return_url'])], ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/epay/notify.php'), "out_trade_no" => $order_data['order_num'], 
//本地订单号 
"name" => $order_data['order_name'], "money" => $order_data['order_price'],
"sitename" => get_bloginfo('name'), 
"clientip" => zib_get_remote_ip_addr() ?: '127.0.0.1', );

把这段代码注释掉如:

//易支付发起支付 
function zibpay_initiate_epay($order_data) { //获取参数 $config = zibpay_get_payconfig('epay'); 
if (empty($config['apiurl']) || empty($config['partner']) || empty($config['key'])) { return array('error' => 1, 'msg' => '易支付缺少配置参数'); } require_once get_theme_file_path('/zibpay/sdk/epay/epay.class.php'); $payment_method = 'alipay' == $order_data['payment_method'] ? 'alipay' : 'wxpay'; 
$parameter = array( "pid" => trim($config['partner']), "type" => $payment_method, 'notify_url' => ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/epay/notify.php', 
'return_url' => add_query_arg(['redirect_url' => urlencode($order_data['return_url'])], ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/epay/notify.php'), "out_trade_no" => $order_data['order_num'], 
//本地订单号 
"name" => $order_data['order_name'], "money" => $order_data['order_price'],
// "sitename" => get_bloginfo('name'), 
//"clientip" => zib_get_remote_ip_addr() ?: '127.0.0.1', );
© 版权声明
THE END
喜欢就支持一下吧
点赞 1 分享 收藏
评论 抢沙发
OωO
取消 登录评论
SSL