Laravel 客户端错误:“PUT”导致“404 Not Found”响应:

zhiyu

我的订阅控制器中有一个公共函数可以从 chargify 中删除订阅的挂起状态。

从他们的文档来看,使用 pecl/http1 方法的代码应该是这样的:

$request = new HttpRequest();
$request->setUrl('https://subdomain.chargify.com/subscriptions/$subscriptionId/delayed_cancel.json');
$request->setMethod(HTTP_METH_DELETE);

$request->setHeaders(array(
  'authorization' => 'Basic YXBpLWtleTp4'
));

$request->setBody('{}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

因此我将此代码放在我的函数中

public function changeYearlySubscriptionBillingDate(Request $request)
 {
     $chargify = new \Crucial\Service\Chargify([
         'hostname' => env('CHARGIFY_HOSTNAME'),
         'api_key' => env('CHARGIFY_KEY'),
         'shared_key' => env('CHARGIFY_SHARED_KEY')
     ]);

     $subscription = $chargify->subscription();
     $user = $request->user();
     $subscriptionId = $user->subscription->subscription_id;
     $nextBilling = Carbon::now()->addYear();
     $hostname = env('CHARGIFY_HOSTNAME');

     $config = [
         'headers' => [
             'authorization' => 'Basic YXBpLWtleTp4',
             'content-type' => 'application/json'
         ]
     ];

     $client  = new Client($config);

     $res = $client->put("https://$hostname/subscriptions/$subscriptionId/.json",
     ["json" => [
             [ "subscription" =>
                 [ "next_billing_at" => $nextBilling ]
             ]
         ]]);


     echo $res->getBody();


 }

因为我是 Laravel 的新手,而且这个文档一般是针对 PHP 的,我不确定如何在 Laravel 框架内转换这段代码。

参考:

错误信息:

Client error: `PUT https://(the hostname)/subscriptions/(the id)/.json` `resulted in a `404 Not Found` response:`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 File Not Found</title>
<style>
b (truncated...)

参考2:官方文档

https://reference.chargify.com/v1/subscriptions/update-subscription-calendar-billing-day-change

马尔钦

它看起来像一个基本的 DELETE 调用。您可以使用Guzzle

通过作曲家安装它

composer require guzzlehttp/guzzle:~6.0

然后您将其包含在您的控制器中:

use GuzzleHttp\Client;

最后使用它:

$config = [
            'headers' => [
               'authorization' => 'Basic YXBpLWtleTp4'
         ]
];

$client  = new Client($config); 
$res = $client->delete("https://subdomain.chargify.com/subscriptions/$subscriptionId/delayed_cancel.json",
  [ "json" =>
    [
      [ "subscription" => ["next_billing_at" => $nextBilling]] 
    ]
  ]
);
echo $res->getBody();

沿着这些路线的东西,实际上还没有检查它是否运行良好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel HTTP 客户端发布响应保存文件

邮递员休息客户端每次响应时都会给出 404 错误

“转换/优化”C# 代码 - HTTP 客户端响应代码 404 错误

Laravel 4.2 - Mailgun 错误“客户端错误响应 [url] https://api.mailgun.net/v2/{domain_name}/messages.mime [状态代码] 400”

从 Laravel 中的 XML HTTP 客户端响应中获取特定值

GuzzleHttp\\Exception\\ClientException:客户端错误:`POST 导致`400 Bad Request` 响应:\n{"@context":"\\/api\\/contexts

捕获Laravel 8中的HTTP客户端错误

Ruby on Rails Rest客户端,处理错误响应

仅在 Firefox 中客户端的错误响应

从Twitter客户端读取响应返回错误

获取响应行错误-减少Redis客户端

带有证明密钥令牌请求的授权码导致无效的客户端响应

HTTP 请求未响应 404 not found

Laravel Passport 注册错误响应

Laravel 5 REST客户端CRUD

laravel 5.4中的客户端验证

Laravel 5 Amazon AWS S3错误:客户端错误:403 RequestTimeTooSkewed

响应清理后返回给客户端

sensu客户端订阅无响应

FTP客户端输出响应标准

客户端多个API响应处理

如何响应多个gRPC客户端?

Web API - 对客户端的正确响应

RxAndroidBle 等待客户端响应

社交名流Google登录Laravel 5.8中的客户端错误500

Laravel 7的Http客户端+ xml =错误的请求,尽管curl可以正常工作

如何纠正由于Laravel 8中的视图,路线和控制器方案导致的404 NOT FOUND错误?

客户端发布响应中的jQuery错误-POST HTTP / 1.1“ 400

弹簧引导GenericFilterBean,过滤器返回错误代码和响应首部在客户端