如何在HTML/PHP中使用cURL对接Coinbase API解决请求报错问题
问题解答
基础认知澄清
- cURL是通用网络请求工具,不绑定任何前端框架,标准PHP环境默认集成cURL扩展,开启即可使用;HTML是静态标记语言,无法直接执行cURL请求,所有cURL逻辑都要在服务端脚本(如PHP)中运行
- 你当前的"unexpected POST"报错是语法错误:你直接把命令行模式的cURL语句写到了PHP代码块中,PHP无法识别这种写法,只能调用PHP内置的cURL系列函数完成请求
- 你的实现思路大方向正确,但存在两个明显错误:
- JSON文件默认不会被PHP解析,你写在data.json里的
<?php echo $fetch['price']; ?>不会被替换为变量值,会直接作为字符串输出,导致JSON格式非法 - 命令行的cURL语法和PHP的cURL函数语法完全不通用,不能直接复制使用
- JSON文件默认不会被PHP解析,你写在data.json里的
正确实现方案
你可以直接在PHP文件中构造请求参数,不需要单独调用外部JSON文件,示例代码如下:
<?php // 1. 构造请求参数 $postData = [ 'name' => 'TZ', 'description' => 'Selected Repair Service', 'pricing_type' => $fetch['price'] // 直接填充动态价格变量 ]; $jsonData = json_encode($postData); // 2. 初始化cURL $ch = curl_init('https://api.commerce.coinbase.com/charges/'); // 3. 配置cURL参数 curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'X-CC-Api-Key: 替换为你的实际API密钥', 'X-CC-Version: 2018-03-22' ]); // 4. 执行请求并处理返回结果 $response = curl_exec($ch); curl_close($ch); $chargeData = json_decode($response, true); // 这里可以取$chargeData里的托管结账页地址,返回给前端跳转即可 ?>
注意事项
- 所有Coinbase API请求必须在服务端处理,绝对不要把API密钥暴露在前端HTML/JS代码中,避免密钥泄露导致资产损失
- 调用前可以先打印
phpinfo()确认PHP已开启cURL扩展,未开启的话需要在php.ini中配置启用
内容的提问来源于stack exchange,提问作者Bboi1999
相关产品推荐
相关产品推荐

