本文拓展的是易支付通道,可以对接自己易支付的所有支付收款通道
照抄就行了,QQ收款同理
介绍
共需要修改五个文件,教程很详细,需要增加什么通道自行拓展即可
| 文件路径 | 文件名 | 功能介绍 |
| /inc/options | admin-options.php | 后台菜单开关 |
| /zibpay/functions | zibpay-ajax.php | 支付处理增加通道 |
| /zibpay/functions | zibpay-func.php | 前端增加支付方式 |
| /zibpay/assets/css | main.css | mapi出码界面适配 |
| /zibpay/assets/js | pay.min.js | mapi出码界面适配 |
如果没有使用到mapi出码或者qrcode出码可以不修改后面两个静态文件
后台菜单
打开 admin-options.php 文件增加后台支付开关,这里的教程以增加USDT通道为例,请仔细按照教程操作,避免出现致命错误等一系列问题
搜索 支付宝收款接口 在他的下面增加USDT或者QQ通道的开关,如下图所示
![图片[1]-子比主题添加USDT和QQ收款 – 易支付通道拓展教程-悦玩网络服务](https://www.950621.cn/wp-content/uploads/2025/05/6f8ca2ceed20250517200002.png)
array(
'id' => 'pay_qq_sdk_options',
'default' => 'null',
'title' => 'QQ收款接口',
'class' => 'compact',
'type' => "select",
'options' => array(
'epay' => __('易支付-QQ', 'zib_language'),
'null' => __('关闭QQ收款', 'zib_language'),
),
),
array( //usdt-1
'id' => 'pay_usdt_sdk_options',
'default' => 'null',
'title' => 'USDT收款接口',
'class' => 'compact',
'type' => "select",
'options' => array(
'epusdt' => __('EPUSDT', 'zib_language'),
'epay' => __('易支付-USDT', 'zib_language'),
'diyepay' => __('自定义接口易支付-USDT', 'zib_language'),
'null' => __('关闭USDT收款', 'zib_language'),
),
),
array(
'dependency' => array('pay_usdt_sdk_options', '==', 'diyepay'),
'id' => 'diyepay',
'type' => 'accordion',
'class' => 'compact',
'title' => '易支付',
'accordions' => array(
array(
'title' => '易支付',
'fields' => array(
array(
'content' => '<li class="c-red">源支付无USDT通道,获取你会想要在这里自定义易支付USDT接口</li>',
'style' => 'info',
'type' => 'submessage',
),
array(
'title' => 'API接口网址',
'id' => 'apiurl',
'default' => '',
'type' => 'text',
'desc' => '请填写接口地址,例如:<code>https://pay.xxxxxxx.cn/</code>',
),
array(
'title' => '商户号',
'class' => 'compact',
'id' => 'partner',
'default' => '',
'type' => 'text',
),
array(
'title' => '商户秘钥',
'class' => 'compact',
'id' => 'key',
'default' => '',
'type' => 'text',
),
),
),
),
),
接着搜索 收款接口显示顺序 增加前端显示时的先后排序
![图片[2]-子比主题添加USDT和QQ收款 – 易支付通道拓展教程-悦玩互联](https://www.950621.cn/wp-content/uploads/2025/05/48db0fbb0a20250517200218.png)
array(
'title' => 'QQ',
'id' => 'qq',
'type' => 'checkbox',
),
array(
'title' => 'USDT',
'id' => 'usdt',
'type' => 'checkbox',
),
至此 admin-options.php 文件的修改就结束了,需要增加其他的通道按照相同的格式增加代码即可
支付处理
为了增加USDT通道或更多通道的支持,修改支付处理函数是必不可少的操作,打开 zibpay-ajax.php 文件搜索 准备付款接口 增加USDT通道的接口,如下图所示:
![图片[3]-子比主题添加USDT和QQ收款 – 易支付通道拓展教程-悦玩互联](https://www.950621.cn/wp-content/uploads/2025/05/569e7c3f9e20250517200527.png)
case 'qq':
$pay_sdk = _pz('pay_qq_sdk_options');
break;
case 'usdt': //usdt-1
$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;
case 'qq':
$payment_method = 'qqpay';
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;
}
}
// 自定义usdt易支付接口
function zibpay_initiate_diyepay($order_data)
{
$config = zibpay_get_payconfig('diyepay');
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 = 'usdt'; // 设置支付方法为usdt
$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;
}
}
前端支付方式
这一步的教程为修改 zibpay-func.php 增加前端支付时的选项,也就是类别 搜索 //支付方式 增加以下代码:
//支付方式
function zibpay_get_payment_methods($pay_type = 0)
{
$payment_method_args = zibpay_get_payment_method_args();
$methods = array();
$pay_wechat_sdk = _pz('pay_wechat_sdk_options');
$pay_alipay_sdk = _pz('pay_alipay_sdk_options');
$pay_usdt_sdk = _pz('pay_usdt_sdk_options'); //usdt-1
$pay_qq_sdk = _pz('pay_qq_sdk_options');
if ($pay_usdt_sdk && 'null' != $pay_usdt_sdk) { //usdt-2
$methods['usdt'] = $payment_method_args['usdt'];
}
if ($pay_qq_sdk && 'null' != $pay_qq_sdk) {
$methods['qq'] = $payment_method_args['qq'];
}
if ($pay_wechat_sdk && 'null' != $pay_wechat_sdk) {
$methods['wechat'] = $payment_method_args['wechat'];
}
if ($pay_alipay_sdk && 'null' != $pay_alipay_sdk) {
$methods['alipay'] = $payment_method_args['alipay'];
}
if (_pz('pay_paypal_sdk_s')) {
$methods['paypal'] = $payment_method_args['paypal'];
}
if (zibpay_is_allow_balance_pay($pay_type)) {
$methods['balance'] = $payment_method_args['balance'];
}
if (zibpay_is_allow_card_pass_pay($pay_type)) {
$methods['card_pass'] = $payment_method_args['card_pass'];
}
//支付方式参数数组
function zibpay_get_payment_method_args()
{
$payment_method_names = array(
'wechat' => array(
'name' => '微信',
'img' => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-wechat-logo.svg" alt="wechat-logo">',
),
'alipay' => array(
'name' => '支付宝',
'img' => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-alipay-logo.svg" alt="alipay-logo">',
),
'usdt' => array( //usdt-3
'name' => 'USDT',
'img' => '<img src="' . vxras_pz('static_vxras') . '/zibpay/assets/img/pay-usdt-logo.svg" alt="usdt-logo">',
),
'qq' => array(
'name' => 'QQ',
'img' => '<img src="' . vxras_pz('static_vxras') . '/zibpay/assets/img/pay-qq-logo.svg" alt="qq-logo">',
),
'balance' => array(
'name' => '余额',
'img' => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-balance-logo.svg" alt="balance-logo">',
),
'points' => array(
'name' => '积分',
'img' => '',
),
'card_pass' => array(
'name' => '卡密',
'img' => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-card-pass-logo.svg" alt="card-pass-logo">',
),
'paypal' => array(
'name' => 'PayPal',
'img' => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-paypal-logo.svg" alt="PayPal-logo">',
),
);
return $payment_method_names;
}
'points' => '积分',
'balance' => '余额',
'wechat' => '微信',
'alipay' => '支付宝',
'qq' => 'QQ',
'usdt' => 'USDT',
'paypal' => 'PayPal',
剩下的就是CSS和JS,可以不改,也可以改,有图片路径的要自己改,不能完全复制
/*----支付弹窗------*/
.pay-payment.wechat .pay-logo {
background-image: url(../img/pay-wechat-logo.svg);
}
.pay-payment.alipay .pay-logo {
background-image: url(../img/pay-alipay-logo.svg);
}
.pay-payment.usdt .pay-logo {
background-image: url(/wp-content/themes/vxras/zibpay/assets/img/pay-usdt-logo.svg);
}
.pay-payment.qq .pay-logo {
background-image: url(/wp-content/themes/vxras/zibpay/assets/img/pay-qq-logo.svg);
}
.pay-payment.alipay .pay-notice .notice {
background: #15acff;
}
.pay-payment.qq .pay-notice .notice{
background: #f75754;
}
.pay-payment.usdt .pay-notice .notice{
background: #3bc5a3;
}
function init() {
var _modal_html = '<div class="modal fade flex jc" style="display:none;" id="' + modal_id + '" tabindex="-1" role="dialog" aria-hidden="false">\
<div class="modal-dialog" role="document">\
<div class="pay-payment alipay">\
<div class="modal-body modal-pay-body">\
<div class="row-5 hide-sm">\
<img class="lazyload pay-sys t-wechat" alt="alipay" src="" data-src="' + _win.uri + '/zibpay/assets/img/alipay-sys.png">\
<img class="lazyload pay-sys t-alipay" alt="wechat" src="" data-src="' + _win.uri + '/zibpay/assets/img/wechat-sys.png">\
<img class="lazyload pay-sys t-qq" alt="usdt" src="" data-src="/wp-content/themes/vxras/zibpay/assets/img/usdt-sys.webp">\
<img class="lazyload pay-sys t-usdt" alt="qq" src="" data-src="/wp-content/themes/vxras/zibpay/assets/img/qq-sys.png">\
</div>\
<div class="row-5">\
<div class="pay-qrcon">\
<div class="qrcon">\
<div class="pay-logo-header mb10"><span class="pay-logo"></span><span class="pay-logo-name t-wechat">支付宝</span><span class="pay-logo-name t-alipay">微信支付</span><span class="pay-logo-name t-qq">USDT支付</span><span class="pay-logo-name t-usdt">QQ支付</span></div>\
<div class="pay-title em09 muted-2-color padding-h6"></div>\
<div><span class="em09">¥</span><span class="pay-price em14"></span></div>\
<div class="pay-qrcode">\
<img src="" alt="pay-qrcode">\
</div>\
</div>\
<div class="pay-switch"></div>\
<div class="pay-notice"><div class="notice load">正在生成订单,请稍候</div></div>\
</div>\
</div>\
</div>\
</div>\
</div>\
</div>';

暂无评价内容