获取从支付网关接收到 Laravel 应用程序的数据
Get Data Receiving from a Payment Gateway into the Laravel Application
Laravel 应用程序与支付网关集成,当向支付网关传递值时,应用程序将向支付网关发送 notify_url。支付网关使用此 notify_url 发送回支付状态,无论提交的支付是成功还是失败。我在这里需要的是捕获该付款状态值。
我创建了一个如下所示的控制器。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class NotifyController extends Controller
{
public function updateTransaction()
{
$status_code = Input::post('status_code');
Storage::put('payment_status.txt', $status_code);
}
}
在Route下添加了以下内容。
Route::post('notify', 'NotifyController@updateTransaction');
Route::get('notify', function()
{
return View::make('home');
});
购买商品后payment_status.txt需要状态码。但是我执行上面的代码后,在Storage/app/下没有创建名为payment_status.txt的文件。有人可以告诉我我在这里遇到的错误是什么吗?帮助我找到一种在付款后获取付款状态的方法。
注意:我无法通过 print/echo 方法测试支付通知,因为 notify_url 永远不会加载到浏览器,因为它是服务器回调。
经过多次尝试,我找到了问题的答案。这是一个简单的答案,我不知道为什么我不浪费时间就没有开始考虑它。由于它是服务器回调,Laravel 编码方式在这里不起作用,因为它不会调用 Laravel 引擎。所以我在这里所做的是,以 程序方式 编写 notify.php 并将该页面添加到服务器。然后,一旦我通过支付网关完成支付,通过使用当前支付状态更新 payment_status.txt ,事情就很好地进行了。
Laravel 应用程序与支付网关集成,当向支付网关传递值时,应用程序将向支付网关发送 notify_url。支付网关使用此 notify_url 发送回支付状态,无论提交的支付是成功还是失败。我在这里需要的是捕获该付款状态值。
我创建了一个如下所示的控制器。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class NotifyController extends Controller
{
public function updateTransaction()
{
$status_code = Input::post('status_code');
Storage::put('payment_status.txt', $status_code);
}
}
在Route下添加了以下内容。
Route::post('notify', 'NotifyController@updateTransaction');
Route::get('notify', function()
{
return View::make('home');
});
购买商品后payment_status.txt需要状态码。但是我执行上面的代码后,在Storage/app/下没有创建名为payment_status.txt的文件。有人可以告诉我我在这里遇到的错误是什么吗?帮助我找到一种在付款后获取付款状态的方法。
注意:我无法通过 print/echo 方法测试支付通知,因为 notify_url 永远不会加载到浏览器,因为它是服务器回调。
经过多次尝试,我找到了问题的答案。这是一个简单的答案,我不知道为什么我不浪费时间就没有开始考虑它。由于它是服务器回调,Laravel 编码方式在这里不起作用,因为它不会调用 Laravel 引擎。所以我在这里所做的是,以 程序方式 编写 notify.php 并将该页面添加到服务器。然后,一旦我通过支付网关完成支付,通过使用当前支付状态更新 payment_status.txt ,事情就很好地进行了。