25-4-09记录 yansongda/pay 最新转账 报错 --- 微信返回状态码异常,请检查参数是否错误

项目场景:

提示:之前微信转账用的挺好 微信官方发布要更新方式 一直没注意 线上程序突然不能用 调试一直有问题


问题描述

问题描述: 微信返回状态码异常,请检查参数是否错误

解决方案:

必须条件 1:yansongda/pay 版本必须 > 3.7.12

 "yansongda/pay": "~3.7.12"
//只更新  yansongda/pay
composer update yansongda/pay
//更新全部 composercomposer update

提必须条件 2:商家要开通商家转账到零钱 如果关闭 在打开,只能使用新版(详细 找到这个页面放到最后)

原因分析:

提示:: 这里要非常注意一下 如果你的 商家转账到零钱是2025.1.15之前申请的 还是用的旧的

1.估计这里作者是想过滤到一些报错 但把有些 缺少参数和 参数报错也给淹没掉了 这个有点难受
2.这里就自行打印了一下 vendor/yansongda/pay/src/Plugin/Wechat/ResponsePlugin.php 大概第 37行 打印一下 echo $response->getBody();
3.这里 注意下 'appid' => get_sys_config('wechat_web_app_id'), 这个闫嵩达前辈的 官网给的 商家转账到零钱旧版 缺少一个这个参数 调用会一直提示 微信返回状态码异常,请检查参数是否错误

 protected function validateResponse(Rocket $rocket): void
    {
        $response = $rocket->getDestinationOrigin();
        echo $response->getBody(); // 打印请求体
        if ($response instanceof ResponseInterface
            && ($response->getStatusCode() < 200 || $response->getStatusCode() >= 300)) {
            throw new InvalidResponseException(Exception::RESPONSE_CODE_WRONG, '微信返回状态码异常,请检查参数是否错误', $rocket->getDestination());
        }
    }

在这里插入图片描述

       try {
        // $order = [
        //     '_action' => 'mch_transfer', // 微信官方老版本下线后,此部分可省略
        //     'out_bill_no' => $partner_trade_no,
        //     'transfer_scene_id' => '1001',
        //     'openid' => $openid,
        //     // 'user_name' => '闫嵩达'  // 明文传参即可,sdk 会自动加密
        //     'transfer_amount' => $re_user_account,
        //     'transfer_remark' => '分销返佣',
        //     'transfer_scene_report_infos' => [
        //       ['info_type' => '活动名称', 'info_content' => '新会员有礼'],
        //       ['info_type' => '奖励说明', 'info_content' => '注册会员抽奖一等奖'],
        //     ]
        // ];
        
        $order = [
            'out_batch_no' => $partner_trade_no,
            'batch_name' => 'subject-测试',
            'batch_remark' => '分销返佣',
            'total_amount' => $re_user_account,
            'total_num' => 1,
            'appid' => get_sys_config('wechat_web_app_id'),
            'transfer_detail_list' => [
                [
                    'out_detail_no' => $partner_trade_no,
                    'transfer_amount' => $re_user_account,
                    'transfer_remark' => '分销返佣',
                    'openid' => $openid,
                    // 'user_name' => '闫嵩达'  // 明文传参即可,sdk 会自动加密
                ],
            ],
        ];
        
        $result = Pay::wechat()->transfer($order);
        
        return $result;
        }catch (\Exception $e){
            // throw new \Exception($e->getMessage());
            throw new \Exception('提现失败,请联系管理员');
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小*-^-*九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值