支付SDK(V3) 支付问题

siwei

问题描述

支付SDK(V3)支付问题

程序代码

<?php
namespace plugin\yonghu\app\controller;
use support\Request;
use support\Response;
use support\exception\BusinessException;
use think\facade\Db;
use support\View;
use think\facade\Session;
use Yansongda\Pay\Pay;
class FuwuController
{   
     public function dofukuan(Request $request): Response
     {
     $id= $request->get('id');
     $list = Db::table('xxxx')->where('id',$id)->find();
     // return Json(['code' => 0, 'msg' => 'ok', 'data' => $list]);
    // 检查查询结果
      if (!$list) {
          return json(['code' => 1, 'msg' => '订单未找到']);
      }

    // 1. 初始化配置
      Pay::config(config('payment'));

      // 2. 网页支付
      $order = [
          'out_trade_no' => time(),
          'total_amount' => $list["jiage"],
          'subject' => $list["yuefen"]."月服务",
          '_method' => 'get' // 使用get方式跳转
          ];
          return Pay::alipay()->web($order)->getBody()->getContents();
         }

    public function alipayReturn(Request $request)
    {
        Log::info('『支付宝』同步通知'.json_encode($request->get()));
        return 'success';
    } 

    /**
     * @desc:『支付宝』异步通知
     * @param Request $request
     * @return Response
     */
    public function alipayNotify(Request $request): Response
    {
        // 1. 获取配置文件 config/payment.php
        $config = Config::get('payment');

        // 2. 初始化配置
        Pay::config($config);

        // 3. 支付宝回调处理
        $result = Pay::alipay()->callback($request->post());

        // ===================================================================================================
        // 请自行对 trade_status 进行判断及其它逻辑进行判断,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。
        // 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号;
        // 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);
        // 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方;
        // 4、验证app_id是否为该商户本身。
        // 5、其它业务逻辑情况
        // ===================================================================================================

        // 5. 支付宝回调处理
        return new Response(200, [], 'success');
    }

报错信息

TypeError: plugin\yonghu\app\controller\FuwuController::dofukuan(): Return value must be of type support\Response, string returned in D:\phpstudy_pro\xxxxxx\plugin\yonghu\app\controller\FuwuController.php:33

截图报错信息里报错文件相关代码

截图

操作系统及workerman/webman等框架组件具体版本

Workerman版本 4.1.15
Webman版本 1.5.16
WebmanAdmin版本 0.6.20

请各位大咖帮忙看看,是什么问题

183 2 0
2个回答

latin

这个是php基础知识,问下AI助手就搞定了

  • 暂无评论
Tinywan

截图

你这直接抄能抄错

官方案例返回值是@return string , 而你的是 Response

  • siwei 7天前

    public function dofukuan(Request $request) 这样就可以了,谢谢

×
🔝