大雕哥
你身边最懂互联网的朋友

志汇点餐外卖小程序商家后台不能退款也无法拒绝退款的问题解决办法

有商家客户反映,在使用志汇点餐外卖小程序时,商家管理后台无法对用户发起的退款申请进行“通过退款”和“拒绝退款”操作,这个情况有点匪夷所思,毕竟我们用的是9.2版本,按道理不应该存在这么低级的BUG吧?

但是既然商家反映了,那就要找问题,根据过去的经验,我们知道,有关支付、退款等一系列操作的代码都在“wxapp.php”这个文件。

//通过退款
public function doPageTg() {
global $_W, $_GPC;
$id = $_GPC['order_id'];
include_once IA_ROOT . '/addons/zh_dianc/cert/WxPay.Api.php';
load()->model('account');
load()->func('communication');
$WxPayApi = new WxPayApi();
$input = new WxPayRefund();
//$path_cert = IA_ROOT . '/addons/zh_dianc/cert/apiclient_cert.pem';
// $path_key = IA_ROOT . '/addons/zh_dianc/cert/apiclient_key.pem';
$path_cert = IA_ROOT . "/addons/zh_dianc/cert/" . 'apiclient_cert_' . $_W['uniacid'] . '.pem';
$path_key = IA_ROOT . "/addons/zh_dianc/cert/" . 'apiclient_key_' . $_W['uniacid'] . '.pem';
$account_info = $_W['account'];
$refund_order = pdo_get('wpdc_order', array('id' => $id));
$res = pdo_get('wpdc_system', array('uniacid' => $_W['uniacid']));
$appid = $res['appid'];
$key = $res['wxkey'];
$mchid = $res['mchid'];
$out_trade_no = $refund_order['sh_ordernum']; //商户订单号
$fee = $refund_order['money'] * 100;
//$refundid = $refund_order['transid'];
//$refundid='4200000022201710178579320894';
$input->SetAppid($appid);
$input->SetMch_id($mchid);
$input->SetOp_user_id($mchid);
$input->SetRefund_fee($fee);
$input->SetTotal_fee($fee);
// $input->SetTransaction_id($refundid);
$input->SetOut_refund_no($id);
$input->SetOut_trade_no($out_trade_no);
$result = $WxPayApi->refund($input, 6, $path_cert, $path_key, $key);
// var_dump($result);die;
if ($result['result_code'] == 'SUCCESS') { //退款成功
pdo_update('wpdc_order', array('state' => 8), array('id' => $id));
echo '1';
} else {
echo '2';
}
}

OK,果然不错,找到代码,大致看一下,完全找不到什么问题,没办法,我们找到微信支付的官方API文档,对照找一下原因吧:

好像会返回错误提示,那么我们需要输出一下$result 看看具体微信提示的是什么?

咦,居然提示账户余额不足,不可能啊,这个订单也才是一个小时之前的订单,微信支付后台也不会这么快提现到账啊,没办法,去登录微信支付后台看看到底什么情况吧。

好吧,通过这么一看,我们明白什么原因了:

温馨提示: 隐藏内容需要 回复评论 后才能查看, 评论后请 刷新 !.

退款这一环节,客户没问题,商家没问题,小程序公司没有问题,我们代码程序员也没有问题,微信支付的一个大坑,最终这个问题要算在谁头上呢?

好吧,跳过这个话题,再看下,商家客户还反应,小程序的拒绝退款这个功能也不能使用。

老规矩,我们还是先找代码:

//拒绝退款
public function doPageJj() {
global $_W, $_GPC;
$id = $_GPC['order_id'];
$res = pdo_update('wpdc_order', array('state' => 9), array('id' => $_GPC['id']));
if ($res) {
echo '1';
} else {
echo '2';
}
}

第一眼看上去,咦,代码没毛病啊,咋回事?

第二眼看上去,代码没毛病啊,咋回事?

第三眼看上去,咋回事?

???

找到问题了!吗的智障,我要杀了写这段代码的程序员。

End.

赞(0) 解决问题,就是我最大的快乐
转载请保留出处:大雕哥 » 志汇点餐外卖小程序商家后台不能退款也无法拒绝退款的问题解决办法
分享到: 更多 (0)

评论 13

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #11

    正有这个困惑

    nanshao4周前 (10-25)回复
  2. #12

    这个困惑我好久了

    2924765673周前 (10-30)回复

大雕哥,做你身边最懂互联网的朋友

邮箱订阅联系我们

如果觉得文章有用可以打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏