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
响应参数
| 名称 | 类型 | 描述 |
|---|---|---|
| cashBalance | BigDecimal | 用户余额 |
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示例
1、官方文档地址:账户余额查询 请求结构 POST /v{version}/finance/cash/balance HTTP/1.1 Host: billing.baidubce.com ContentType: application/json; charsetutf-8 Content-Length: <Content_Length> Authorization: authorization string 响应参数 …...
自动化开发任务:在PHP框架中实现自定义命令
在现代Web开发中,自动化是提高开发效率和减少重复工作的关键。PHP框架,如Laravel、Symfony等,提供了强大的自定义命令功能,允许开发者创建自己的artisan命令来执行各种自动化任务。本文将详细介绍如何在PHP框架中实现自定义命令&a…...
如何在Java中实现数据加密与解密?
如何在Java中实现数据加密与解密? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Java中实现数据加密与解密,这是保…...
Nginx日志管理之日志分析
Nginx 通常被置于服务器访问的入口,其访问日志可以全局记录用户访问的来源、响应时间,以及用户行为热点等数据,通过对访问日志的分析,可以清晰地了解用户来源、用户行为习惯及自身服务器性能等情况。借助 ELK 的高性能处理能力&am…...
利用 Microsoft ChatGPT 和 OPC UA 改变工业格局
在本文中,我们将探讨开放性在工业物联网中的作用,以及Microsoft为创建基于OPC UA的开放平台所做的努力。我们将讨论 Microsoft 开放战略的四大支柱,以及标准化信息模型以实现互操作性的重要性。此外,我们将深入探讨传统接口和数据…...
力扣-两数之和
文章目录 题目题解方法1-暴力方法2-哈希 题目 原题链接:两数之和 题解 方法1-暴力 我最先想到的方法就是暴力,两层for循环,也能通过。(拿到算法题在没有思路的时候暴力就是思路,哈哈哈) public class T…...
基于CDMA的多用户水下无线光通信(3)——解相关多用户检测
继续上一篇博文,本文将介绍基于解相关的多用户检测算法。解相关检测器的优点是因不需要估计各个用户的接收信号幅值而具有抗远近效应的能力。常规的解相关检测器有运算量大和实时性差的缺点,本文针对异步CDMA的MAI主要来自干扰用户的相邻三个比特周期的特…...
哔哩哔哩视频URL解析原理
哔哩哔哩视频URL解析原理 视频网址解析视频的原理通常涉及以下几个步骤: 1、获取视频页面源代码:通过HTTP请求获取视频所在网页的HTML源代码。这一步通常需要处理反爬虫机制,如验证码或用户登录。 2、解析页面源代码:分析HTML源代…...
个人成长的利器:复盘教你如何避免重蹈覆辙
前言 📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元 最近忙着学习和工作,更新比较少,期间一直在思考如何才能快速…...
2025秋招NLP算法面试真题(一)-史上最全Transformer面试题
史上最全Transformer面试题 Transformer为何使用多头注意力机制?(为什么不使用一个头)Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘? (注意和第一个问题的区别&#…...
基于STM32的智能家居安防系统
目录 引言环境准备智能家居安防系统基础代码实现:实现智能家居安防系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景:智能家居安防管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居安防系统通过使…...
React+TS前台项目实战(十二)-- 全局常用组件Toast封装,以及rxjs和useReducer的使用
文章目录 前言Toast组件1. 功能分析2. 代码详细注释(1)建立一个reducer.ts文件,用于管理状态数据(2)自定义一个清除定时器的hook(3)使用rxjs封装全局变量管理hook(4)在to…...
總結光學(完)
參考: 陈曦<<光学讲义>>http://ithatron.phys.tsinghua.edu.cn/downloads/optics.pdf 1 波动光学 最简单的一种波是平面波。........... 一个波的波前是指相位相同的点构成的面。波的传播方向垂直于波面。 我们在此将讨论的光波特指波长远大于原子尺度又远小于…...
线程C++
#include <thread> #include <chrono> #include <cmath> #include <mutex> #include <iostream> using namespace std;mutex mtx; void threadCommunicat() {int ans 0;while (ans<3){mtx.lock();//上锁cout << "ans" <…...
DAMA学习笔记(二)-数据治理
1.引言 数据治理(Data Governance,DG)的定义是在管理数据资产过程中行使权力和管控,包括计划、监控和实施。在所有组织中,无论是否有正式的数据治理职能,都需要对数据进行决策。建立了正式的数据治理规程及…...
07-appium常用操作
一、press_keycode 1)方法说明 press_keycode方法是appium的键盘相关函数,可以实现键盘的相关操作,比如返回、按键、音量调节等等。也可以使用keyevent方法,功能与press_keycode方法类似。 常见按键编码:https://www.…...
使用lua开发apisix自定义插件并发布
接到老大需求:需要对cookie进行操作,遂查询apisix的自带插件,发现有,但不满足,于是自己开发了一个插件并部署,把开发部署流程写在这里打个日志怕以后忘掉。 一、需求 插件很简单,就是在reques…...
43 mysql insert select 的实现
前言 我们这里 来探讨一下 insert into $fields select $fields from $table; 的相关实现, 然后 大致来看一下 为什么 他能这么快 按照 我的思考, 应该里里面有 批量插入才对, 但是 调试结果 发现令我有一些意外 呵呵 果然 只有调试才是唯一的真理 测试数据表如下 CREATE…...
趣味学Python,快速上手神奇的itertools库!
大家好,我是菜哥! 在学习Python编程的过程中,我们经常会使用到一些非常有用的标准库,它们不仅可以让我们的代码更加简洁高效,还能帮我们解决很多复杂的问题。Python标准库为我们提供了大量实用的工具和模块,…...
富文本编辑器CKEditor
介绍 富文本编辑器不同于文本编辑器,它提供类似于 Microsoft Word 的编辑功能 在Django中,有可以现成的富文本三方模块django-ckeditor,具体安排方式: pip install django-ckeditor==6.5.1官网:Django CKEditor — Django CKEditor 6.7.0 documentation 使用方式 创建项…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
当下AI智能硬件方案浅谈
背景: 现在大模型出来以后,打破了常规的机械式的对话,人机对话变得更聪明一点。 对话用到的技术主要是实时音视频,简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术,开发自己的大模型。商用方案多见为字节、百…...
MeanFlow:何凯明新作,单步去噪图像生成新SOTA
1.简介 这篇文章介绍了一种名为MeanFlow的新型生成模型框架,旨在通过单步生成过程高效地将先验分布转换为数据分布。文章的核心创新在于引入了平均速度的概念,这一概念的引入使得模型能够通过单次函数评估完成从先验分布到数据分布的转换,显…...
