You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PHP cURL代码转换为Laravel Guzzle格式?请求报错排查

问题:Laravel Guzzle调用Plaid API失败(PHP-cURL可正常运行)

用Postman测试Plaid的asset_report/create接口,生成的PHP-cURL代码在Laravel中可正常运行,但转换为Guzzle格式后调用返回400 Bad Request错误。

可正常运行的PHP-cURL代码

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sandbox.plaid.com/asset_report/create',
  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 =>'{
   "client_id": "xxxx",
   "secret": "xxxx",
   "access_tokens": ["access-sandbox-xxx"],
   "days_requested": 30,
   "options": {
      "client_report_id": "ENTER_CLIENT_REPORT_ID_HERE",
      "webhook": "https://www.example.com/webhook",
      "user": {
        "client_user_id": "ENTER_USER_ID_HERE",
        "first_name": "ENTER_FIRST_NAME_HERE",
        "middle_name": "ENTER_MIDDLE_NAME_HERE",
        "last_name": "ENTER_LAST_NAME_HERE",
        "ssn": "111-22-1234",
        "phone_number": "1-415-867-5309",
        "email": "ENTER_EMAIL_HERE"
      }
   }
 }',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

出错的Guzzle代码

use GuzzleHttp\Client;

$guzzle = new Client;
$getAccestToken = $guzzle->request('POST', 'https://sandbox.plaid.com/asset_report/create', [
    'headers' => ['Content-Type' => 'application/json'],
    'json' => [
                "client_id" => "xxx",
                "secret" => "xxx",
                "access_token" => [ "access-sandbox-xxx" ] ,
                "days_requested" => 30,
                "options" => [
                        "client_report_id" => "ENTER_CLIENT_REPORT_ID_HERE",
                        "webhook" => "https://www.example.com/webhook",
                        "user" => [
                                "client_user_id" => "ENTER_USER_ID_HERE",
                                "first_name" => "ENTER_FIRST_NAME_HERE",
                                "middle_name" => "ENTER_MIDDLE_NAME_HERE",
                                "last_name" => "ENTER_LAST_NAME_HERE",
                                "ssn" => "111-22-1234",
                                "phone_number" => "1-415-867-5309",
                                "email" => "ENTER_EMAIL_HERE"
                            ]
                    ]
                ]   
]); 

错误信息

Client error: POST https://sandbox.plaid.com/asset_report/create resulted in a 400 Bad Request response: { "display_message": null, "documentation_url": "https://plaid.com/docs/?ref=error#invalid-request-errors", "error (truncated...)

问题原因与修正

你的Guzzle代码里存在字段名称错误:将cURL代码中的access_tokens(复数形式)写成了access_token(单数形式),而Plaid API要求该字段必须是复数的access_tokens。

修正后的Guzzle代码如下:

use GuzzleHttp\Client;

$guzzle = new Client;
$getAccestToken = $guzzle->request('POST', 'https://sandbox.plaid.com/asset_report/create', [
    'headers' => ['Content-Type' => 'application/json'],
    'json' => [
                "client_id" => "xxx",
                "secret" => "xxx",
                "access_tokens" => [ "access-sandbox-xxx" ] , // 修正为复数形式
                "days_requested" => 30,
                "options" => [
                        "client_report_id" => "ENTER_CLIENT_REPORT_ID_HERE",
                        "webhook" => "https://www.example.com/webhook",
                        "user" => [
                                "client_user_id" => "ENTER_USER_ID_HERE",
                                "first_name" => "ENTER_FIRST_NAME_HERE",
                                "middle_name" => "ENTER_MIDDLE_NAME_HERE",
                                "last_name" => "ENTER_LAST_NAME_HERE",
                                "ssn" => "111-22-1234",
                                "phone_number" => "1-415-867-5309",
                                "email" => "ENTER_EMAIL_HERE"
                            ]
                    ]
                ]   
]); 

内容的提问来源于stack exchange,提问作者ferdinand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:55:18