首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Laravel上使用Guzzle传递报头中的Zoho-oauthtoken?

如何在Laravel上使用Guzzle传递报头中的Zoho-oauthtoken?
EN

Stack Overflow用户
提问于 2020-02-10 03:54:22
回答 1查看 248关注 0票数 0

我有一个要转换为Guzzle的cURL

代码语言:javascript
代码运行次数:0
运行
复制
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://subscriptions.zoho.com/api/v1/hostedpages/newsubscription",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\n    \"plan\": {\n        \"plan_code\": \"AM-001\",\n        \"price\": " . $gPrice . ",\n        \"tax_id\": \"1786305000000842230\",\n    },\n    \"addons\": [\n        {\n            \"addon_code\": \"AB-001\",\n            \"addon_description\": \"Ads Budget\",\n            \"price\": " . $bPrice . ",\n\n        }\n    ],\n    \"coupon_code\": \"150-credit\"\n    \n}",
  CURLOPT_HTTPHEADER => array(
    "X-com-zoho-subscriptions-organizationid: " . $org_id,
    "Authorization: Zoho-oauthtoken " . $accessToken,
    "Content-Type: application/x-www-form-urlencoded"
  ),
));

现在,我已经将以下代码转换为:

代码语言:javascript
代码运行次数:0
运行
复制
$headers = [
            'Authorization' => 'Zoho-oauthtoken ' . $access_token,
            'X-com-zoho-subscriptions-organizationid' => $org_id,
        ];

        $res = $client->request('POST', 'https://subscriptions.zoho.com/api/v1/hostedpages/newsubscription', $headers, [
            'plan' => [
                'plan_code' => 'AM-001',
                'price' => $data['finaltotal'],
                'tax_id' => '1786305000000842230',
            ],
            'addons' =>[
                'addon_code' => 'AB-001',
                'addon_description' => 'Ads Budget',
                'price' => $data['finalads']
            ],
            'coupon_code' => '150-credit'
        ]);

但我有

“客户端错误:POST https://subscriptions.zoho.com/api/v1/hostedpages/newsubscription导致代码响应:{”401 Unauthorized“:14,”message“:”为authtoken传递的值无效。“}”

我是否正确定义了标头?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-10 23:25:17

第三个选项是request的options,所以如果您需要传递headers,则需要指定密钥headers

因此,您的代码应该如下所示

代码语言:javascript
代码运行次数:0
运行
复制
$options = [
    'headers' => [ // <- here :)
            'Authorization' => 'Zoho-oauthtoken ' . $access_token,
            'X-com-zoho-subscriptions-organizationid' => $org_id,
    ];
]

$res = $client->request(
    'POST',
    'https://subscriptions.zoho.com/api/v1/hostedpages/newsubscription', 
    $options, // <- options
    [
            'plan' => [
                    'plan_code' => 'AM-001',
                    'price' => $data['finaltotal'],
                    'tax_id' => '1786305000000842230',
            ],
            'addons' =>[
                    'addon_code' => 'AB-001',
                    'addon_description' => 'Ads Budget',
                    'price' => $data['finalads']
            ],
            'coupon_code' => '150-credit'
    ]
);

试试这个,应该行得通。

如果有任何疑问,请发表意见。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60140719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档