From f9c19ff7bca9ecb67b37c94c052305b652443e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E6=AD=A3=E8=B6=85?= Date: Mon, 28 Aug 2023 09:29:53 +0800 Subject: [PATCH] Update server.md --- docs/src/6.x/pay/server.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/src/6.x/pay/server.md b/docs/src/6.x/pay/server.md index 76c42e62d..d47e36aa8 100755 --- a/docs/src/6.x/pay/server.md +++ b/docs/src/6.x/pay/server.md @@ -52,6 +52,22 @@ $server->handleRefunded(function (Message $message, \Closure $next) { return $server->serve(); ``` +> 🚨 注意:经测试发现官方扔存在[使用 v2 模式的退款推送](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_16&index=10),所以如果你的退款逻辑有异常,请参考以下方式实现(需要配置 v2 API key): + +```php +// 建议使用单独的路由处理退款! +$server = $app->getServer(); + +// 推送消息,已解密 +// 结构参考:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_16&index=10 +$message = $server->getReqeustMessage(); + +// 你的逻辑... + +// 返回 SUCCESS 或者 FAIL 等其他状态 +return new \Nyholm\Psr7\Response(200, [], \EasyWeChat\Kernel\Support\Xml::build(['return_code' => 'SUCCESS', 'return_msg' => 'OK'])); +``` + ## 其它事件处理 以上便捷方法都只处理了**成功状态**,其它状态,可以通过自定义事件处理中间件的形式处理: