侧边栏壁纸
博主头像
NOKOOILE论坛 博主等级

行动起来,活在当下

  • 累计撰写 22 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

关于给子比主题添加支持易支付USDT付款

太上圣君
2025-12-13 / 0 评论 / 0 点赞 / 5 阅读 / 0 字

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

/inc/options/admin-options.php后台菜单开关

/zibpay/functions/zibpay-ajax.php支付处理增加通道

/zibpay/functions/zibpay-func.php前端增加支付方式

废话不多说,上教程。

1/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'),

),

),

array(

'id' => 'pay_USDT_sdk_options',

'default' => 'null',

'title' => 'USDT收款接口',

'class' => 'compact',

'type' => "select",

'options' => array(

'epay' => __('易支付-USDT', 'zib_language'),

'null' => __('关闭USDT收款', 'zib_language'),

),

),

array(

'id' => 'pay_paypal_sdk_s',

'type' => 'switcher',

'class' => 'compact',

'title' => 'PayPal支付(贝宝)' . $new_badge['7.4'],

'label' => '启用后请在下方配置参数',

'default' => false,

),

array(

'id' => 'pay_sdk_custom_title_s',

'type' => 'switcher',

'title' => '自定义收款标题' . $new_badge['8.1'],

'label' => '默认为付款类型加网站名,如需自定义请开启',

'default' => false,

),

array(

'dependency' => array('pay_sdk_custom_title_s', '!=', ''),

'title' => ' ',

'subtitle' => '自定义收款标题',

'desc' => '可使用变量:订单类型<code>%order_type%</code>例如:%order_type%-子比主题<br>注意:请控制总长度,太长会导致部分接口报错',

'class' => 'compact',

'id' => 'pay_sdk_custom_title',

'default' => '',

'type' => 'text',

),

array(

'title' => '收款接口显示顺序',

'subtitle' => '显示顺序依赖于对应开启的接口,并非全部显示',

'id' => 'pay_sdk_order',

'class' => 'sortable-only', //仅仅

'type' => 'sortable',

'sanitize' => false,

'default' => pz('payalipay_sdk_order', array('wechat' => '1', 'alipay' => '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',

),

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

2打开 zibpay-ajax.php 文件搜索 准备付款接口 增加USDT通道的接口

[评论可见]隐藏内容 - 管理员可见

/**准备付款接口 */

$pay_sdk = '';

switch ($order_data['payment_method']) {

case 'balance':

case 'card_pass':

case 'paypal':

$pay_sdk = $order_data['payment_method'];

break;

case 'USDT':

$pay_sdk = pz('payUSDT_sdk_options');

break;

case 'wechat':

$pay_sdk = pz('paywechat_sdk_options');

break;

case 'alipay':

$pay_sdk = pz('payalipay_sdk_options');

break;

}

//支付接口挂钩

$pay_sdk = apply_filters('zibpay_initiate_paysdk', $pay_sdk, $order_data);

if (!$pay_sdk || 'null' == $pay_sdk) {

return array('error' => 1, 'msg' => '当前订单不支持此方式支付,请联系客服');

}

//支付结果挂钩

$payresult = apply_filters('zibpay_initiate_' . $pay_sdk, $order_data);

$payresult = array_merge($order_data, $payresult);

return $payresult;

}

//PayPal发起支付

function zibpay_zibpay_initiate_paypal($order_data)

{

//获取参数

$config = zibpay_get_payconfig('paypal');

if (empty($config['username']) || empty($config['password']) || empty($config['signature'])) {

return array('error' => 1, 'msg' => 'PayPal接口缺少配置参数');

}

require_once get_theme_file_path('/zibpay/sdk/paypal/paypal.php');

require_once get_theme_file_path('/zibpay/sdk/paypal/httprequest.php');

$total = bcmul($order_data['order_price'], $config['rates'], 2);

$return_url = !empty($order_data['return_url']) ? $order_data['return_url'] : home_url();

$config['cancel'] = add_query_arg(['return_url' => urlencode($return_url), 'cancel' => 'cancel'], ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/paypal/return.php');

$config['return'] = add_query_arg(['return_url' => urlencode($return_url), 'order_num' => $order_data['order_num']], ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/paypal/return.php');

$PayPal = new \PayPal($config);

$result = $PayPal->doExpressCheckout($total, $order_data['order_name'], $order_data['order_num'], $config['currency']);

if (!is_string($result)) {

return array('error' => 1, 'result' => $result, 'msg' => isset($result['L_LONGMESSAGE0']) ? 'PayPal接口错误:' . $result['L_LONGMESSAGE0'] : __('PayPal配置错误,或网络连接失败', 'zibll'));

}

return array('open_url' => true, 'url' => $result);

}

//V免签发起支付

function zibpay_zibpay_initiate_vmqphp($order_data)

{

//获取参数

$config = zibpay_get_payconfig('vmqphp');

if (empty($config['apiurl']) || empty($config['key'])) {

return array('error' => 1, 'msg' => 'V免签接口缺少配置参数');

}

require_once get_theme_file_path('/zibpay/sdk/vmq/vmq.class.php');

//建立请求

$PaySubmit = new vmqphpPay($config);

$payment_method = 'alipay' == $order_data['payment_method'] ? 2 : 1;

$return_url = !empty($order_data['return_url']) ? $order_data['return_url'] : home_url();

$param = $order_data['payment_method'] . '|' . $return_url;

$parameter = array(

"payId" => $order_data['order_num'], //本地订单号

"type" => $payment_method,

"price" => $order_data['order_price'],

'notifyUrl' => ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/vmq/notify.php',

'returnUrl' => ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/shop/vmq/return.php',

"param" => $param,

"isHtml" => 0,

);

if (empty($config['no_open'])) {

$parameter['isHtml'] = 1;

$url = $PaySubmit->buildURL($parameter);

return array('url' => $url, 'open_url' => true);

}

$get_json = $PaySubmit->get($parameter);

if (isset($get_json['code']) && 1 == $get_json['code'] && !empty($get_json['data']['payUrl'])) {

$result['url_qrcode'] = zib_get_qrcode_base64($get_json['data']['payUrl']);

$reallyPrice = !empty($get_json['data']['reallyPrice']) ? round($get_json['data']['reallyPrice'], 2) : $order_data['order_price'];

$result['order_price'] = $reallyPrice;

$result['more_html'] = '<div class="badg btn-block c-yellow em09 padding-h10">请扫码后支付' . $reallyPrice . '元,为了确保支付成功,请注意付款金额请勿出错</div>';

return $result;

}

$msg = !empty($get_json['msg']) ? $get_json['msg'] : '接口请求错误';

return array('error' => 1, 'msg' => $msg);

}

//易支付发起支付

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 = 'EVM_Polygon_USDT_ERC20';

break;

}

 

3修改 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('paywechat_sdk_options');

$pay_alipay_sdk = pz('payalipay_sdk_options');

$pay_USDT_sdk = pz('payUSDT_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('paysdk_order', array('wechat' => '1', 'alipay' => '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);

}

//支付方式参数数组

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">',

),

'balance' => array(

'name' => '余额',

'img' => '<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/zibpay/assets/img/pay-balance-logo.svg" alt="balance-logo">',

),

'USDT' => array(

'name' => 'USDT-Polygon',

'img' => '<img src="https://pay.000000.de/assets/icon/USDT_TRC20.ico" alt="USDT-logo">',

),

 

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

0

评论区