【问题标题】:problem in laravel route on tackling the response of payment gatewaylaravel 路由中关于处理支付网关响应的问题
【发布时间】:2020-06-02 19:58:14
【问题描述】:

我正在使用 laravel 并集成支付网关。当我发送发布请求然后在成功或取消后,它会像这样重定向参考 ID http://localhost/multi_vendor/user/paypal/return?flwref=FLW-MOCK-d4f7572650fbe61ecff7fb17a7129859&txref=rave-bxw7c98dymo8so0kwosco0wwscs8ogc 那么如何在 laravel 中解决呢?

我为此制定了路线

Route::get('/paypal/return', 'User\PaypalController@payreturn')->name('user.payment.return');

【问题讨论】:

  • 在你的 public function payreturn($request, $request), you can access the query string values via $request->input('flwref)` 和 $request->input('txref') 中。你的问题到底是什么?您还没有真正解释发生了什么问题/遇到了什么问题。
  • 公共函数 payreturn(Request $request){ dd($request); }
  • 先生,我正在使用公共函数 payreturn(Request $request){ dd($request); 处理此响应} 但当 url 重定向时,它会显示“哎呀,好像出了点问题。”
  • 启用日志记录...您应该只能在production 中看到该屏幕。将这些设置在您的 .envAPP_ENV=localAPP_DEBUG=true。另外,请确保您通过use Illuminate\Http\Request; 在控制器中导入Request(所有控制器都应该有这个)
  • 感谢您的帮助,但经过大量努力我还没有完成,请查看此视频

标签: laravel routes


【解决方案1】:

你可以像上面写的那样创建一个路由:-

Route::get('/paypal/return', 'User\PaypalController@payreturn')->name('user.payment.return');

然后在 User\PaypalController 控制器方法 payreturn 中,您可以执行以下操作:-

<?php

namespace App\Http\Controllers\User;

use Illuminate\Http\Request;
class PaypalController extends Controller
{

public function payreturn(Request $request)
{
//Here you can get the response request values
$ref = $request->flwref;
$TxRef = $request->txref;

}
}

【讨论】:

  • 感谢您的帮助先生,正如您所说,我同样采用该程序,但到目前为止它对我不起作用。
  • Route _______ Route::post('/flutterwave/submit', 'User\PaypalController@process')->name('user.flutterwave.submit'); Route::get('/flutterwave/return', 'User\PaypalController@flutterwave')->name('user.flutterwave.return');
  • 我的控制器__________________
  • 我的控制器 _____________ webhookdanish.000webhostapp.com/controller.txt 我的路线 _____________________________ webhookdanish.000webhostapp.com/route.txt
【解决方案2】:

我也不太明白你的问题,但让我试试。

可能的约会:

  • 如果您的路线类似于 localhost/multi_vendor/user/paypal/return,您必须在路线文件中表示所有步骤,例如 Route::get('/multi_vendor/{user}/paypal/return,[...])。如果您已经在使用 somethink like it 或带有前缀的组,请忽略它;
  • 如果你想重定向,你可以在你的控制器或路由文件中使用return redirect('yourCompleteUrl')
  • 如果您想检索 Tim Lewis 回答的参数,您需要:
    public function payreturn(Request $request)
    {
        $flref = $request->input('flref');
        $txref = $request->input('txref');
    }

【讨论】:

  • 只是我了解您的流程:public function process(Request $request){...} 将使用 curl 代码处理付款;如果成功,它将跳过if(!$transaction-&gt;data &amp;&amp; !$transaction-&gt;data-&gt;link),并在方法的最后一行重定向到先前在$redirect_url = action('User\PaypalController@payreturn');'redirect_url'=&gt;$redirect_url 中设置的url。我对这个流程有误?
  • 如果我没记错的话:我将 /multi_vendor/ 视为您的默认 url 的一部分,并且我在路由中看到了用户组。发生的事情是您没有传播 url 参数。尝试将它们附加到路由: public function payreturn(Request $request){ //dd($request); return redirect()->route('user-dashboard',['flwref'=>$request->flwref, 'txref'=>$request->txref])->with('success','供应商账户激活成功地'); } 如果对您有帮助,请告诉我。
  • 很难帮助您解决我们不了解您真正的问题。请尝试重新表述您的问题。
  • 我只想获取支付网关返回的get参数
【解决方案3】:

@darnish manzoor 只需添加您的 url 回调 rootverto verifycrsf 令牌

如果您的重定向 url 是 /ravecallback,只需添加它,它将停止为您提供不允许的方法

protected $except = [
        '/ravecallback'
  ];

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2011-02-25
    • 2014-08-10
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2016-03-25
    • 2017-03-25
    相关资源
    最近更新 更多