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

如何修复CURLOPT_POSTFIELDS传入$amount后显示null的问题

问题根因
  • PHP单引号包裹的字符串不会解析内部变量,你当前代码中CURLOPT_POSTFIELDS绑定的是单引号包裹的JSON字符串,内部的$amount不会被替换成实际传入的GET参数值,会被作为字面量字符串"$amount"提交给接口,接口无法将该字符串解析为合法数值,自动转换为null。
  • 代码存在两处额外隐患:
    • x-api-key请求头的冒号后未加空格,不符合HTTP头格式规范,部分网关/接口会直接识别为非法请求头
    • 未对入参做合法性校验,直接透传GET参数,容易出现非法值导致接口报错;CURLOPT_TIMEOUT设为0代表无限等待,容易导致请求堆积。
修复方案

不要手动拼接JSON字符串,使用PHP数组构造请求结构体,再通过json_encode()函数生成标准格式的JSON串,从根源避免变量不解析、JSON格式错误、字段类型不匹配问题。
修复后的完整代码如下:

<?php
// 入参合法性校验
$api = isset($_GET['api']) ? trim($_GET['api']) : '';
$amount = isset($_GET['amount']) && is_numeric($_GET['amount']) ? (float)$_GET['amount'] : 0;
if (empty($api) || $amount <= 0) {
    header('Content-Type: application/json');
    echo json_encode(['code' => 400, 'msg' => '非法请求参数'], JSON_PRETTY_PRINT);
    exit;
}

$curl = curl_init();

// 数组形式构造POST请求数据
$requestBody = [
    'price_amount' => $amount,
    'price_currency' => 'usd',
    'pay_currency' => 'btc'
];

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.googl.com',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 10,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode($requestBody),
  CURLOPT_HTTPHEADER => array(
    'x-api-key: ' . $api,
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);
$curlErr = curl_error($curl);
curl_close($curl);

header('Content-Type: application/json');
if ($curlErr) {
    echo json_encode(['code' => 500, 'msg' => '请求失败:' . $curlErr], JSON_PRETTY_PRINT);
    exit;
}
$formattedResp = json_encode(json_decode($response), JSON_PRETTY_PRINT);
echo $formattedResp;
?>

注意:不要采用双引号转义拼接JSON的写法,该写法一旦字段包含双引号、换行、特殊字符就会导致JSON格式损坏,接口直接解析失败,以下写法仅作原理参考,禁止生产环境使用:

CURLOPT_POSTFIELDS =>"{
  \"price_amount\": $amount,
  \"price_currency\": \"usd\",
  \"pay_currency\": \"btc\"
}",

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:03:28