子比zibi主题修复易支付mapi接口无法使用的教程

此教程适用子比主题使用易支付的场景
起因:
因目前使用的易支付平台免跳转扫码的qrcode.php接口变更为mapi.php
这就导致了到目前为止最新7.4所有版本的子比主题无法使用该平台的免跳转扫码功能

该教程适用的条件有两条
一:你的平台可以用”https://payapi.xxxzf.com/pay/submit/订单号/”这种格式的URL打开收款界面
二:检查你收款平台的开发文档,找到API接口支付下面的返回结果有无:订单号 trade_no 的返回变量

如有,接着往下看,一共两步

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

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

null

改完记得保存

第二步,在主题文件编辑器找到以下路径
子比主题: 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'];

null

修改第232行的位置的代码

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

null

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

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

null

改完记得保存

最后在子比主题设置,商城&付费->收款接口里面,将易支付的PC端扫码支付打开,兼容模式不要开,点保存

现在,你可以优雅的使用易支付免跳转扫码收款啦~

点赞