请问有使用过yansongda/pay:~3.1.0支付扩展的同学么?请教一下微信支付回调问题?

目前已走到回调,如何使用:$data = $pay->callback(),拿到对应的支付单号呢?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案
 你可以打印下 $data, 如果没记错应该是 $data->out_trade_no;
2年前 评论
anxi (楼主) 2年前
巴啦啦臭魔仙 2年前
anxi (楼主) 2年前
巴啦啦臭魔仙 2年前
anxi (楼主) 2年前
巴啦啦臭魔仙 2年前
deatil 2年前
anxi (楼主) 2年前
讨论数量: 13
 你可以打印下 $data, 如果没记错应该是 $data->out_trade_no;
2年前 评论
anxi (楼主) 2年前
巴啦啦臭魔仙 2年前
anxi (楼主) 2年前
巴啦啦臭魔仙 2年前
anxi (楼主) 2年前
巴啦啦臭魔仙 2年前
deatil 2年前
anxi (楼主) 2年前
 我用的是版本2,估计也就验签不一样, 你参考下 
 public function notify(AlipayService $service, Request $request)
{

    $alipay = app('alipay');

    try {

        $data = $alipay->verify(); // 是的,验签就这么简单!

        $outTradeNo = $data->out_trade_no;

        if (!in_array($data->trade_status, ['TRADE_SUCCESS', 'TRADE_FINISHED'])) {
            return $alipay->success();
        }

        /* @var Order $order */
        $order = Order::query()->where('code', $outTradeNo)->first();
        if (!$order) {
            throw new Exception("订单 {$outTradeNo} 不存在");
        }

        if (!$order->isUnPaid()) {
            throw new Exception("订单 {$outTradeNo} 状态异常,当前状态是:{$order->getStatusText()}");
        }

        if (bccomp($order->getAmount(), $data->total_amount)) {
            throw new Exception("订单 {$outTradeNo} 金额异常,支付金额为{$data->total_amount},而订单金额为 {$order->getAmount()}");
        }

        $service->afterPaid($order, $data->trade_no);

    } catch (\Throwable $e) {
        Log::debug('alipay notify error', [
            'message' => $e->getMessage(),
            'request' => $request->all()
        ]);

    }

    return $alipay->success();

}
2年前 评论
anxi (楼主) 2年前
luyang (作者) 2年前
anxi (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!