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

2024-06-19 16:20

本文主要是介绍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 | 百度智能云文档

这篇关于php百度云账户余额查询API示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075528

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最