当前位置: 首页 > news >正文

php百度云账户余额查询API示例

1、官方文档地址:账户余额查询

请求结构

POST /v{version}/finance/cash/balance
HTTP/1.1 
Host: billing.baidubce.com 
ContentType: application/json; charset=utf-8
Content-Length: <Content_Length>
Authorization: authorization string

响应参数

名称类型描述
cashBalanceBigDecimal用户余额

PHP完整代码示例:

<?php
//账户余额查询
class Balance {private $ak;private $sk;public function __construct($ak, $sk){$this->ak = $ak;$this->sk = $sk;if (empty($this->ak) || empty($this->sk)) {exit('请配置ak 或者 sk');}}public function getBalance(){$data = [];$res = $this->getBaiduApi($data);if (isset($res['cashBalance'])) {$result =  ['code' => 200,'cashBalance' => $res['cashBalance'],'msg' => 'ok'];} else {$result =  ['code' => 10001,'msg' => $res['message']];}return $result;}public function getBaiduApi($data = []){$host = 'billing.baidubce.com'; // 服务$uri = '/v1/finance/cash/balance'; // 接口路径$startUtc = gmdate("Y-m-d\TH:i:s\Z");  // utc 时间戳$Authorization = $this->getBaiDuAuthorization($startUtc, $uri, $host);$url = "https://" . $host . $uri;$data = json_encode($data,JSON_UNESCAPED_UNICODE);$header = ['Authorization:'.$Authorization,'Host:'.$host,'content-type:application/json','x-bce-date:'.$startUtc,'Content-Length:'.strlen($data)];return $this->getBaiDuPostCurl($url, $data, $header);}public function getBaiDuAuthorization($startUtc, $canonicalUri, $host){// 签名有效期 (秒)$validity = '1800';//签名头域(signedHeaders):加入签名算法的HTTP头域列表,为认证字符串的中间部分。$signedHeaders = 'host;x-bce-date';$Host = "host:" . $host;$BceDate = "x-bce-date:" . urlencode($startUtc);$httpRequestMethod = "POST";//规范请求(canonicalRequest):经过规范化处理后的请求信息,又称待签名串。$canonicalCan = '';$canonicalRequest = $httpRequestMethod . "\n" . $canonicalUri . "\n" . $canonicalCan . "\n" . $Host . "\n" . $BceDate;// 1: 前缀字符串  由除sk字段外的签名信息生成$authStringPrefix = "bce-auth-v1/" . $this->ak . "/" . $startUtc . "/" . $validity;// 2: 派生签名密钥 signingKey  signingKey = HMAC-SHA-256-HEX("sk", authStringPrefix)$signingKey = bin2hex(hash_hmac('sha256',  $authStringPrefix, $this->sk, true));// 3: 签名摘要 signature  signature = HMAC-SHA-256-HEX(signingKey, canonicalRequest)$signature = bin2hex(hash_hmac('sha256',  $canonicalRequest, $signingKey, true));// 4: 认证字符串 authorization  Authorization = authStringPrefix/signedHeaders/signature$Authorization = $authStringPrefix . '/' . $signedHeaders .'/' . $signature;return $Authorization;}public function getBaiDuPostCurl($url, $data = null, $header = null){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_NOBODY, false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);if (!empty($data)) {curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);}if ( !empty($header) ) {curl_setopt($ch, CURLOPT_HTTPHEADER, $header);}$res = curl_exec($ch);$errorCode = curl_errno($ch);curl_close($ch);if(0 !== $errorCode) {return false;}return json_decode($res, true);}
}$ak = '109e************************68f1';    //换成自己的Access Key
$sk = 'c5e0*************************e4e';    //换成自己的Secret Key
$balance = new Balance($ak, $sk);
$res = $balance->getBalance();
if ($res['code'] == 200) {echo '余额:' . $res['cashBalance'] . '元';
} else {echo $res['msg'];
}?>

 如何获取AKSK:如何获取AKSK - 相关参考Reference | 百度智能云文档

http://www.lryc.cn/news/380595.html

相关文章:

  • 自动化开发任务:在PHP框架中实现自定义命令
  • 如何在Java中实现数据加密与解密?
  • Nginx日志管理之日志分析
  • 利用 Microsoft ChatGPT 和 OPC UA 改变工业格局
  • 力扣-两数之和
  • 基于CDMA的多用户水下无线光通信(3)——解相关多用户检测
  • 哔哩哔哩视频URL解析原理
  • 个人成长的利器:复盘教你如何避免重蹈覆辙
  • 2025秋招NLP算法面试真题(一)-史上最全Transformer面试题
  • 基于STM32的智能家居安防系统
  • React+TS前台项目实战(十二)-- 全局常用组件Toast封装,以及rxjs和useReducer的使用
  • 總結光學(完)
  • 线程C++
  • DAMA学习笔记(二)-数据治理
  • 07-appium常用操作
  • 使用lua开发apisix自定义插件并发布
  • 43 mysql insert select 的实现
  • 趣味学Python,快速上手神奇的itertools库!
  • 富文本编辑器CKEditor
  • 【机器学习】音乐大模型的深入探讨——当机器有了创意,是机遇还是灾难?
  • 机器人学习和研究的物质基础包含哪些内容?
  • Python中的交互式GUI开发:与MATLAB uicontrol的比较
  • js 实现将后端请求来的 Blob 数据保存到用户选择的任意目录
  • 【LLM之RAG】RAT论文阅读笔记
  • windows anaconda 安装 Labelme
  • Python实现基于深度学习的电影推荐系统
  • C++ (week9):Git
  • Seaborn:数据可视化的强大工具
  • 图解注意力
  • Typora Markdown编辑器 for Mac v1.8.10 安装