前言:今天朋友给我发了份 DUX 8.8 主题,请我帮忙看看码支付回调问题(主要是个人站长,其他支付通道没开,就只好申请了码支付)
拿到主题的后搭建上去测试了下,支付成功,同样是无回调,查看了码支付后台返回结果
我勒个去,这是什么鬼???
通过该结果无法取得想要的结果,只得打开回调配置文件检查
<?php
require_once("codepay_config.php"); //导入配置文件
ksort($_POST); //排序post参数
reset($_POST); //内部指针指向数组中的第一个元素
$sign = '';//初始化

foreach ($_POST AS $key => $val) { //遍历POST参数
if ($val == '' || $key == 'sign') continue; //跳过这些不签名
if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
$sign .= "$key=$val"; //拼接为url参数形式
}
if (!$_POST['pay_no'] || md5($sign . $codepay_key) != $_POST['sign']) { //不合法的数据
exit('fail'); //返回失败 继续补单
} else { //合法的数据
//业务处理
$pay_id = $_POST['pay_id']; //需要充值的ID 或订单号 或用户名
$money = (float)$_POST['money']; //实际付款金额
$price = (float)$_POST['price']; //订单的原价
$param = $_POST['param']; //自定义参数

global $wpdb;
$prefix = $wpdb->prefix;
$table = $prefix.'um_orders';
$row = $wpdb->get_row("select * from ".$table." where order_id=".$trade_order_id);
if($row && $money == $row->order_total_price ){
if($row->order_status<=3){

$wpdb->query( "UPDATE $table SET order_status=4, trade_no='$transaction_id', order_success_time='$success_time', user_alipay='$openid' WHERE order_id='$trade_order_id'" );
//更新资源剩余量
update_success_order_product($row->product_id,$row->order_quantity);
if(!empty($row->user_email)){$email = $row->user_email;}
//发送订单状态变更email
store_email_template($trade_order_id,'',$email);
//发送购买可见内容或下载链接或会员状态变更
send_goods_by_order($trade_order_id,'',$email);
}
exit('success'); //返回成功 不要删除哦
}else{
exit('fail'); //金额不足
}

}
?>

看到他这里的参数,我的内心是崩溃的。“$trade_order_id”??这是什么鬼??通过语法得出这是检查本地单号的一个参数,但是他上面用的是“$pay_id”,而非“$trade_order_id”啊!!
无力吐槽,直接将“$pay_id”替换为“$trade_order_id
<?php
require_once("codepay_config.php"); //导入配置文件
ksort($_POST); //排序post参数
reset($_POST); //内部指针指向数组中的第一个元素
$sign = '';//初始化

foreach ($_POST AS $key => $val) { //遍历POST参数
if ($val == '' || $key == 'sign') continue; //跳过这些不签名
if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
$sign .= "$key=$val"; //拼接为url参数形式
}
if (!$_POST['pay_no'] || md5($sign . $codepay_key) != $_POST['sign']) { //不合法的数据
exit('fail'); //返回失败 继续补单
} else { //合法的数据
//业务处理
$trade_order_id = $_POST['pay_id']; //需要充值的ID 或订单号 或用户名
$money = (float)$_POST['money']; //实际付款金额
$price = (float)$_POST['price']; //订单的原价
$param = $_POST['param']; //自定义参数

global $wpdb;
$prefix = $wpdb->prefix;
$table = $prefix.'um_orders';
$row = $wpdb->get_row("select * from ".$table." where order_id=".$trade_order_id);
if($row && $money == $row->order_total_price ){
if($row->order_status<=3){

$wpdb->query( "UPDATE $table SET order_status=4, trade_no='$transaction_id', order_success_time='$success_time', user_alipay='$openid' WHERE order_id='$trade_order_id'" );
//更新资源剩余量
update_success_order_product($row->product_id,$row->order_quantity);
if(!empty($row->user_email)){$email = $row->user_email;}
//发送订单状态变更email
store_email_template($trade_order_id,'',$email);
//发送购买可见内容或下载链接或会员状态变更
send_goods_by_order($trade_order_id,'',$email);
}
exit('success'); //返回成功 不要删除哦
}else{
exit('fail'); //金额不足
}

}
?>

本文最后更新于2019年12月18日,若涉及的内容可能已经失效,直接留言反馈补链即可,我们会处理,谢谢
本站所有资源收集于网络,如有侵权违规请联系联系客服处理删帖,谢谢
52草根资源 » [源码资源]WordPress DUX_plus_8.8 轻语博客 支付回调问题修复

常见问题FAQ

1.关于新手解压出错 必看(附电脑+安卓WINRAR APP)
新手必看 本站资源解压教程:http://www.52cgzys.com/76304/
2.本站Telegram群组链接
本站Telegram群组链接:https://t.me/joinchat/ElyDb9Es_YNjYjdl
3.所有礼包码下载地址:http://www.52cgzys.com/422289/
所有礼包码下载地址:http://www.52cgzys.com/422289
4.各类问题及解决处理方法合集
各类问题及解决处理方法合集:http://www.52cgzys.com/zhanwu/xinshou/

发表回复

提供最优质的资源集合

立即查看 申请友链