Easywechat 6.x 支付回调问题

aspire

框架:Webman v1.5.8

支付SDK:Easywechat 6.8

easywechat 6.x 回调报错,虽然解决了问题,回调业务也正常,但还一直报错。 我只要是不看日志就不会影响我业务,作为一个有责任心的程序员我希望彻底的解决这个问题😂,于是我去easywechat提问, 终于大佬的帮助下回调问题成功的解决了。

easywehcat团队reatang的方案就是

easywechat 是php-fig标准。webman是自定义,还是需要一个兼容层去做转换的事情

use EasyWeChat\Pay\Application;
use EasyWeChat\Pay\Message;
use Symfony\Component\HttpFoundation\HeaderBag;
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;

$app = new Application($config);
$symfony_request = new SymfonyRequest( $request->get(),$request->post(),[],$request->cookie(),[],[],$request->rawBody() );
$header =  $request->header();
$symfony_request->headers = new HeaderBag( $header );
$app->setRequestFromSymfonyRequest($symfony_request);

$server = $app->getServer();
$server->handlePaid(function (Message $message, \Closure $next) {
    // $message->out_trade_no 获取商户订单号
    // $message->payer['openid'] 获取支付者 openid
    //     注意:推送信息不一定靠谱哈,请务必验证
    // 建议是拿订单号调用微信支付查询接口,以查询到的订单状态为准
    return $next($message);
});

// 默认返回 ['code' => 'SUCCESS', 'message' => '成功']
$response = $server->serve();
return response($response->getBody(), 200, $response->getHeaders());

在这里特别感谢webman团队和@yzh52521大佬的帮助。👏👏👏

1980 2 8
2个评论

huan99

感谢大佬分享,解决了我的问题

  • 暂无评论
efnic

专用于webman的支付解决方案
composer require ledc/easywechat

  • 暂无评论

aspire

50
积分
0
获赞数
0
粉丝数
2023-08-16 加入
×
🔝