(Обновлено) Метод Laravel PUT не работает

Мой код в деталях:

  public function changeYearlySubscriptionBillingDate(Request $request) { $user = $request->user(); $subscriptionId = $user->subscription->subscription_id; $nextBilling = Carbon::now()->addYear(); $hostname = env('CHARGIFY_HOSTNAME'); $headers = [ 'authorization' => 'Basic ANIDIANDIAJIJCQ', 'content-type' => 'application/json' ]; $body = ["subscription" => ["next_billing_at" =>[ $nextBilling ]]]; $config = [ 'headers' => $headers, 'form_param' => $body ]; $client = new Client($config); $res = $client->put("https://$hostname/subscriptions/$subscriptionId.json", ["json" => [ [ "subscription" => [ "next_billing_at" => $nextBilling ] ] ] ]); echo $res->getBody(); } 

Строка, которую вы строите, неверна. Не должно быть между $subscription и .json

+ Изменить

 $res = $client->put("https://$hostname/subscriptions/$subscriptionId/.json", 

в

 $res = $client->put("https://$hostname/subscriptions/$subscriptionId.json", 

РЕДАКТИРОВАТЬ

Попробуйте изменить логику, чтобы Guzzle вызывал это.

 $headers = [ 'authorization' => 'Basic ANIDIANDIAJIJCQ', 'content-type' => 'application/json' ]; $body = ["subscription" => ["next_billing_at" =>[ $nextBilling ]]]; $client = new Client(); $res = $client->put("https://$hostname/subscriptions/$subscriptionId.json", [ 'headers' => $headers, 'body' => json_encode($body) ] ); echo $res->getBody()->getContents(); 

Спасибо всем за то, что помогли мне.

Я работаю над этой проблемой в течение 2 дней, и это должно было быть правильным для меня. В конце концов, это их API ввел меня в заблуждение.

единственное, что нам нужно сделать, это просто изменить

 'body' => "{\"subscription\":{\"next_billing_at\":\"$nextBilling\"}}" 

добавил несколько «внутри».

Спасибо всем за то, что помогли мне, хорошо провели день!