子比主题添加USDT和QQ收款 – 易支付通道拓展教程

本文拓展的是易支付通道,可以对接自己易支付的所有支付收款通道

照抄就行了,QQ收款同理

图片[1]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网

介绍

共需要修改五个文件,教程很详细,需要增加什么通道自行拓展即可

文件路径文件名功能介绍
/inc/optionsadmin-options.php后台菜单开关
/zibpay/functionszibpay-ajax.php支付处理增加通道
/zibpay/functionszibpay-func.php前端增加支付方式
/zibpay/assets/cssmain.cssmapi出码界面适配
/zibpay/assets/jspay.min.jsmapi出码界面适配

如果没有使用到mapi出码或者qrcode出码可以不修改后面两个静态文件

易支付添加USDT收款参考

运营版易支付系统,通道随意对接带USDT,没有后门

彩虹易支付USDT插件-TRC20支付收款插件

后台菜单

打开 admin-options.php 文件增加后台支付开关,这里的教程以增加USDT通道为例,请仔细按照教程操作,避免出现致命错误等一系列问题

搜索 支付宝收款接口 在他的下面增加USDT或者QQ通道的开关,如下图所示

图片[2]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网
            array(
                'id'      => 'pay_usdt_sdk_options',
                'default' => 'null',
                'title'   => 'USDT接口',
                'class'   => 'compact',
                'type'    => "select",
                'options' => array(
                    'epay'            => __('易支付-usdt', 'zib_language'),
                    'null'            => __('关闭usdt收款', 'zib_language'),
                ),
            ),

接着搜索 收款接口显示顺序 增加前端显示时的先后排序

图片[3]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网
                    array(
                        'title' => 'USDT',
                        'id'    => 'usdt',
                        'type'  => 'checkbox',
                    ),

至此 admin-options.php 文件的修改就结束了,需要增加其他的通道按照相同的格式增加代码即可

支付处理

为了增加USDT通道或更多通道的支持,修改支付处理函数是必不可少的操作,打开 zibpay-ajax.php 文件搜索 准备付款接口 增加USDT通道的接口,如下图所示:

图片[4]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网
        case 'usdt':
            $pay_sdk = _pz('pay_usdt_sdk_options');
            break;

而后搜索 易支付发起支付 修改易支付处理支付的核心函数,进行增加USDT通道的请求

一定要选中到 支付宝官方发起支付 这个注释之前进行整个函数的覆盖

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');

    switch ($order_data['payment_method']) {
        case 'alipay':
            $payment_method = 'alipay';
            break;
        case 'wechat':
            $payment_method = 'wxpay';
            break;
        case 'usdt':
            $payment_method = 'usdt';
            break;
    }

    $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' => $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',
    );

    $is_mobile = wp_is_mobile();
    $EpayCore  = new EpayCore($config);

    if ($is_mobile || empty($config['qrcode'])) {
        $html_text = $EpayCore->pagePay($parameter);
        return array('form_html' => '<div class="hide">' . $html_text . '</div>');
    } else {
        $result = $EpayCore->apiPay($parameter);
       if (isset($result['code']) && 1 == $result['code'] && (!empty($result['code_url']) || !empty($result['qrcode']))) {
            $_code_url            = !empty($result['code_url']) ? ($result['code_url']) : $result['qrcode'];
            $result['url_qrcode'] = zib_get_qrcode_base64(urldecode($_code_url));
            $result['check_sdk']  = 'epay'; //接口查询

            if (!empty($result['money'])) {
                if ($result['order_price'] != $result['money']) {
                    $result['more_html'] = '<div class="badg btn-block c-yellow em09 padding-h10">请扫码后支付' . $result['money'] . '元,为了确保支付成功,请注意付款金额请勿出错</div>';
                }
                $result['order_price'] = $result['money'];
            }
        } elseif (isset($result['code']) && 1 == $result['code'] && (!empty($result['payurl']))) {
            $result['url']      = $result['payurl'];
            $result['open_url'] = true;
        } else {
            $result['error'] = 1;
            $result['msg']   = !empty($result['msg']) ? $result['msg'] : '收款码请求失败';
        }
        return $result;
    }
}

如果你需要增加其他的通道,例如QQ,按照里面的格式增加即可

case 'qq':
            $payment_method = 'qqpay';
            break;
    }

增加在USDT通道的旁边,需要注意的是 usdt 是你所对接的易支付请求这个通道的type,如果你不知道就需要看易支付的对接文档,查看QQ或者USDT请求支付的type是什么,通常情况下,QQ的type就是小写的qqpay

case 'usdt':
            $payment_method = 'usdt';
            break;

前端支付方式

这一步的教程为修改 zibpay-func.php 增加前端支付时的选项,也就是类别 搜索 //支付方式 增加以下代码:

图片[5]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网
在
$pay_alipay_sdk      = _pz('pay_alipay_sdk_options');
的下方增加
$pay_usdt_sdk        = _pz('pay_usdt_sdk_options');

接着看下方的代码

图片[6]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网

在这个代码的下方增加USDT支付

    if ($pay_usdt_sdk && 'null' != $pay_usdt_sdk) {
        $methods['usdt'] = $payment_method_args['usdt'];
    }

随后搜索 //支付方式参数数组 设置前端显示的图标及名称,按照相应的格式增加代码即可

'wechat'    => array(
            'name' => '微信',
            'img'  => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-wechat-logo.svg" alt="wechat-logo">',
        ),

其中 ' . ZIB_TEMPLATE_DIRECTORY_URI . ' 所代表的是子比主题目录,你也可以自行设置外链图片

USDT格式如下:

        'usdt'    => array(
            'name' => 'usdt',
            'img'  => '<img src="https://www.bygoukai.com/wp-goukaizhijia/USDT.svg" alt="usdt-logo">',
        ),

至此,你的网站就已经成功增加了易支付USDT通道,可正常进行调用以及回调,如不回调,请检查你的易支付程序回调功能是否正常

图片[7]|子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网
本站资源均为作者提供和网友推荐收集整理而来,仅供学习和研究使用,请在下载后24小时内删除,谢谢合作!
子比主题添加USDT和QQ收款 – 易支付通道拓展教程|不死鸟资源网
子比主题添加USDT和QQ收款 – 易支付通道拓展教程
此内容为免费阅读,请登录后查看
¥0
限时特惠
¥99
文章采用CC BY-NC-SA 4.0许可协议授权
免费阅读
THE END
点赞6 分享