修改子比主题易支付接口增加usdt支付

修改子比主题易支付接口增加usdt支付

修改子比主题易支付接口增加usdt支付-致远星球
修改子比主题易支付接口增加usdt支付
此内容为付费阅读,请付费后查看
100
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费阅读

如果你在对接 USDT 支付时使用了源支付接口,请避免启用 mapi.php(即非跳转二维码收款方式)。由于源支付未优化 USDT 的 mapi 接口,扫码可能会提示参数错误。此教程专注于对接 USDT 支付通道,其他支付接口可以参考此流程。

步骤详解

1. admin-options.php 中添加 USDT 支付接口

    • 打开子比主题文件:inc/options/admin-options.php

    • 找到现有的支付宝接口配置:

array(
    'id'      => 'pay_alipay_sdk_options',
    'default' => 'null',
    'title'   => '支付宝收款接口',
    'class'   => 'compact',
    'type'    => "select",
    'options' => array(
        'xhpay'           => __('迅虎PAY-支付宝', 'zib_language'),
        'payjs'           => __('PAYJS-支付宝', 'zib_language'),
        'xunhupay_alipay' => __('虎皮椒V3-支付宝', 'zib_language'),
        'official_alipay' => __('支付宝企业支付/当面付', 'zib_language'),
        'codepay_alipay'  => __('码支付-支付宝', 'zib_language'),
        'epay'            => __('易支付-支付宝', 'zib_language'),
        'vmqphp'          => __('V免签-支付宝', 'zib_language'),
        'null'            => __('关闭支付宝收款', 'zib_language'),
    ),
),

2. 添加 USDT 支付选项

    • 在支付宝部分的下方,增加一个 USDT 支付选项,代码如下:

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 选项以控制其显示顺序:

array(
    'title'    => '收款接口显示顺序',
    'subtitle' => '显示顺序依赖于对应开启的接口,并非全部显示',
    'id'       => 'pay_sdk_order',
    'class'    => 'sortable-only',
    'type'     => 'sortable',
    'sanitize' => false,
    'default'  => _pz('pay_alipay_sdk_order', array('wechat' => '1', 'alipay' => '1', 'usdt' => '1',  'paypal' => '1', 'balance' => '1', 'card_pass' => '1'), 'enabled'),
    'fields'   => array(
        array('title' => '微信', 'id' => 'wechat', 'type' => 'checkbox'),
        array('title' => '支付宝', 'id' => 'alipay', 'type' => 'checkbox'),
        array('title' => 'USDT', 'id' => 'usdt', 'type' => 'checkbox'),
        array('title' => 'PayPal(贝宝)', 'id' => 'paypal', 'type' => 'checkbox'),
        array('title' => '余额', 'id' => 'balance', 'type' => 'checkbox'),
        array('title' => '卡密', 'id' => 'card_pass', 'type' => 'checkbox'),
    ),
),

4. 更新支付处理代码

    • 打开 zibpay/functions/zibpay-ajax.php,找到准备付款接口部分。

    • 在支付宝的 case 语句下方,添加一个 USDT 的 case

case 'usdt':
    $pay_sdk = _pz('pay_usdt_sdk_options');
    break;
    • 继续查找 易支付发起支付 代码部分,在支付函数中增加 USDT 通道的处理(具体实现会因配置不同而有所不同)。

5. 更新支付方式排序

    • zibpay-func.php 中找到 zibpay_get_payment_methods 函数。

    • 使用以下代码确保支付方式按照设定顺序显示:

//支付方式
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');
    
    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 ($pay_usdt_sdk && 'null' != $pay_usdt_sdk) {
        $methods['usdt'] = $payment_method_args['usdt'];
    }
    
    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'];
    }

    //排序
    $pay_sdk_order = _pz('pay_sdk_order', array('wechat' => '1', 'alipay' => '1', 'usdt' => '1', 'paypal' => '1', 'balance' => '1', 'card_pass' => '1'));
    if ($pay_sdk_order && is_array($pay_sdk_order)) {
        foreach ($pay_sdk_order as $k => $v) {
            if (isset($methods[$k])) {
                $new[$k] = $methods[$k];
                unset($methods[$k]);
                $methods = array_merge($new, $methods);
            }
        }
    }

    return apply_filters('zibpay_payment_methods', $methods, $pay_type);
}

6. 为 USDT 支付方式添加图标

    • 找到定义支付图标的数组,为 USDT 添加一个带有合适图片的选项。例如:

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

到这里,后台就可以配置 USDT 支付通道,前台也会显示 USDT 选项。建议进行测试支付,以确保一切正常运行。

© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容