Web アプリケーションである種の「プレミアム」システムを実行しようとしていますが、支払いの処理に問題があります。
私はMollie Apiを使用していますが、これを github で見つけてlaravelに統合しています。
public function postMedium()
{
$user_id = Auth::user()->id;
$payment = Mollie::getPayments()->create([
"amount" => 9.99,
"description" => "Foodtruck Bestellen Premium - 1 Month",
"webhookUrl" => "URL",
"redirectUrl" => "URL",
"metadata" => array(
'user_id' => $user_id
)
]);
return redirect($payment->links->paymentUrl);
}
public function mediumPaymentCheck(Request $request)
{
$payment = Mollie::getPayments()->get(Input::get('id'));
if ($payment->isPaid()) {
$user_id = $payment->user_id;
$user = User::find($user_id);
$user->premium = true;
$user->premium_type = "medium";
$user->premium_expiry_date = Carbon::now()->addDays(30);
$user->save();
}
}
支払い後、redirectUrl にリダイレクトされ、それが機能します。
でも...
私の DB では何も変化がないため、Webhook URL (「mediumPaymentCheck」) が無視されているか、何らかの理由で機能していないようです。
誰かが私を助けてくれることを願っています!
編集: 私の webhook の URL は次のようになります。
Route::group(['middleware' => ['web']], function () {
Route::post('/premium/payment/medium/check', 'PremiumController@mediumPaymentCheck');