SDK api(oss,cos,wechat)

 阿里云 OSS SDK

文件上传与下载:阿里云 OSS SDK 提供了简便的 API 用于上传和下载文件,开发者无需处理底层网络请求,直接调用 putObject()getObject() 等方法即可操作文件。

存储桶管理:SDK 提供了创建、删除、列出存储桶等功能,方便用户管理存储空间。通过简单的 API 操作存储桶生命周期。

分片上传:对于大文件,SDK 支持分片上传,允许将文件分割为多个部分并分别上传,提升了上传的稳定性和效率。

访问控制:开发者可以通过 SDK 轻松设置对象和存储桶的访问权限,如私有、公共读、公共读写等,保证数据的安全性。

示例: 通过 SDK 上传文件:
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(fileContent.getBytes()));
ossClient.shutdown();

腾讯云 COS SDK (qcloud-cos-sdk)

com.qcloud.cos 包含的类和接口来自腾讯云 COS (Cloud Object Storage) SDK。该 SDK 用于与腾讯云 COS 服务进行交互,支持文件的上传、下载、删除等操作。

关键类和方法:
  • COSClient:核心类,用于与腾讯云 COS 服务交互。提供了对象存储的各种操作,如文件上传、下载、删除等。
  • BasicCOSCredentials:用于身份认证,使用访问密钥 (accessKeyId) 和密钥 (accessKeySecret) 创建。
  • ClientConfig:客户端配置类,用于配置 COS 的客户端,如区域、HTTP 超时等。
  • PutObjectRequest:用于表示上传文件的请求,包含存储桶名称、文件名、文件流和文件元数据。
  • ObjectMetadata:文件元数据类,用于设置文件的大小、内容类型等。
  • PutObjectResult:表示上传结果,包含成功后的元数据信息。
具体实例:
  • BasicCOSCredentials:用于创建凭证,使用 accessKeyIdaccessKeySecret 进行身份认证。

  • Region:指定 COS 服务的操作区域,例如 Region("ap-guangzhou") 表示使用广州区域。

  • ClientConfig:创建客户端配置,用于配置 COS 服务的区域和其他客户端设置。

  • COSClient:创建 COS 客户端,用于执行文件上传、下载、删除等操作。

  • PutObjectRequest:封装文件上传请求,指定存储桶、文件路径和文件内容。

  • putObject():将文件上传到 COS 存储桶,返回上传结果 PutObjectResult

  • getObjectMetadata():获取已上传文件的元数据信息,如文件大小、类型等。

// 1. 创建 COSClient 实例
BasicCOSCredentials cred = new BasicCOSCredentials(accessKeyId, accessKeySecret);
Region region = new Region(endpoint);  // 指定区域
ClientConfig clientConfig = new ClientConfig(region);  // 配置客户端
COSClient cosClient = new COSClient(cred, clientConfig);try {// 2. 文件上传InputStream fileInputStream = file.getInputStream();ObjectMetadata objectMetadata = new ObjectMetadata();objectMetadata.setContentLength(fileInputStream.available());  // 设置文件元数据PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectKey, fileInputStream, objectMetadata);PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);  // 上传文件// 3. 获取文件元数据ObjectMetadata metadata = cosClient.getObjectMetadata(bucketName, objectKey);long fileSize = metadata.getContentLength();// 4. 文件下载COSObject cosObject = cosClient.getObject(bucketName, objectKey);InputStream downloadedFile = cosObject.getObjectContent();  // 下载文件
} finally {// 5. 关闭 COSClient 释放资源cosClient.shutdown();
}

WeChat Pay SDK for Java

WeChat Pay SDK for Java 是一个用于与微信支付 API 交互的工具包 

认证:

  • 主要功能:该方法用于创建一个 CloseableHttpClient 对象,发送 HTTP 请求给微信支付 API。
  • 私钥加载:通过 PemUtil.loadPrivateKey 加载商户的 API 私钥,用于请求签名。
  • 证书加载:加载微信支付平台的证书,用于验签。
  • 自动签名与验签WechatPayHttpClientBuilder 创建的 HttpClient 会自动处理请求的签名和微信返回结果的验签,确保交易安全。
private CloseableHttpClient getClient() {...// 加载私钥和微信平台证书merchantPrivateKey = PemUtil.loadPrivateKey(new FileInputStream(new File(weChatProperties.getPrivateKeyFilePath())));X509Certificate x509Certificate = PemUtil.loadCertificate(new FileInputStream(new File(weChatProperties.getWeChatPayCertFilePath())));WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create().withMerchant(weChatProperties.getMchid(), weChatProperties.getMchSerialNo(), merchantPrivateKey).withWechatPay(Arrays.asList(x509Certificate));// 返回构建好的 HttpClientreturn builder.build();
}
请求:
  • 通过 HttpClient 发送包含请求体的 POST或GET 请求。
  • HttpClient 会自动处理签名(使用商户私钥)和验签(使用微信支付证书)。
  • 返回请求的响应内容(如下单、退款等操作结果)。
 具体实现:
创建支付订单(jsapi)
  • 数据构建: 将订单号、金额、openid 等信息封装为 JSON 数据,包括支付所需字段。
  • 请求发送: 使用 POST 方法向 JSAPI 下单接口 发送请求,HttpClient 处理签名和验签。
  • 返回结果: 接收微信支付返回的 prepay_id,用于前端调起支付界面完成支付。
创建完整的订单:
  • 后端调用微信支付的 JSAPI 下单接口,创建一个预支付订单,获取 prepay_id
  • 后端使用 prepay_idtimeStampnonceStr 等信息生成一个支付签名(paySign)。
  • 后端将这些信息(包括 prepay_idtimeStampnonceStrpaySign 等)打包成 JSON 返回给前端。
小程序微信支付流程:
后端 (pay 函数):负责生成完整的支付订单信息,包括 prepay_id、签名等。这个函数的结果返回给前端。
前端:利用后端返回的信息,通过调用微信支付的 API,调起支付界面,让用户进行支付。
用户付款:用户通过前端的支付界面完成付款。
支付结果通知:支付成功后,微信服务器异步通知后端支付结果,后端可以更新订单状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/147940.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

GAMES101(15节)

Irradiance辐射度量学 辐射度量学在渲染领域,可以帮助理解基于物理的光照模型 radiant energy辐射能量Q,累计总能量(单位J joule焦耳),就像太阳能板,光照时间越长接收能量越多,收到的能量总和…

jetlinks物联网平台学习2(加盐算法登陆)

加盐算法 加盐算法加密验证密码是否正确 对于传统的MD5加密,比更传统的直接保存账号密码稍微安全一点。 md5加密是一种hash算法 比如对于123456来说,md5算法结果一定是e10adc3949ba59abbe56e057f20f883e 这个结果是固定的。于是有的人准备一张彩虹表 预先…

ECharts基础使用方法 ---vue

1.安装依赖文件 仔细看项目" README.md " 描述,确定用什么安装 npm npm install echarts --save //官网推荐使用 pnpm pnpm install echarts --save 其他也是 在项目根目录,打开当前目录命令控制栏,输入以上命令并运行 安装成功后…

第十三章:使用html和css做一个静态登录网页练习

我们在使用浏览器 浏览某些网站的时候 有可能会遇到登录这种网页,这种网页是怎么制作出来的呢? 下面 我就来分享一个简单的 登录页 实现方案! 登录页面的作用: 身份验证:登录页面的核心作用就是验证用户身份。用户输入用户名(或邮箱、手机号)和密码,系统通过验证来判断…

[数据结构]无头单向非循环链表的实现与应用

文章目录 一、引言二、线性表的基本概念1、线性表是什么2、链表与顺序表的区别3、无头单向非循环链表 三、无头单向非循环链表的实现1、结构体定义2、初始化3、销毁4、显示5、增删查改 四、分析无头单向非循环链表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引…

尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)

目录: (1)秒杀业务分析 (2)搭建秒杀模块 (3)秒杀商品导入缓存 (4)redis发布与订阅实现 (1)秒杀业务分析 需求分析 所谓“秒杀”&#xff0…

百度智能云API调用

植物识别API import base64 import urllib import requestsAPI_KEY = "你的图像识别API_KEY" SECRET_KEY = "你的图像识别SECRET_KEY"def main():url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/plant?access_token=" + get_acc…

12、等保安全通用要求

数据来源:12.等保安全通用要求_哔哩哔哩_bilibili 基本要求

docker启动mysql未读取my.cnf配置文件问题

描述 在做mysql主从复制配置两台mysql时,从节点的my.cnf配置为: [mysqld] datadir /usr/local/mysql/slave1/data character-set-server utf8 lower-case-table-names 1 # 主从复制-从机配置# 从服务器唯一 ID server-id 2 # 启用中继日志 relay-l…

thop计算模型复杂度(params,flops)

thop安装 -pip install thop在线安装失败 -离线安装 github网址: pytorch-OpCounter:Count the MACs / FLOPs of your PyTorch model. - GitCode python setup.py install 测试: from options import config as c import os os.environ["CUD…

【高分系列卫星简介——高分三号卫星(GF-3)】

高分三号卫星(GF-3) 高分三号(GF-3)是我国首颗高分辨率、C频段、多极化合成孔径雷达(SAR)卫星,由中国空间技术研究院北京空间飞行器总部设计部研制,并于2016年8月10日成功发射。该卫…

vue实现扫雷代码复制即可用,vue2和vue3都可适用

效果预览 代码实现 <template><div id"app"><div class"mine-sweeper"><div class"board" v-for"row in board" :key"row-${row.index}"><divclass"cell":class"{ no-clickable…

Vue3:mitt实现组件通信

目录 一.性质 1.轻量级 2.单例 3.异步 4.事件绑定与解绑 二.作用 1.组件间通信 2.解耦 3.状态管理 4.事件的集中处理 三.使用 1.安装mitt 2.引入mitt&#xff1b;调用mitt&#xff1b;暴露mitt 3.组件1 4.组件2 四.代码 1.组件1 2.组件2 五.效果 一.性质 1…

qt-C++笔记之Q_DECLARE_METATYPE和qRegisterMetaType

qt-C笔记之Q_DECLARE_METATYPE和qRegisterMetaType code review! 文章目录 qt-C笔记之Q_DECLARE_METATYPE和qRegisterMetaType一.Q_DECLARE_METATYPE使用方法应用场景 二.为什么需要注册类型&#xff1f;三.使用 Q_DECLARE_METATYPE 处理自定义类型的简短示例3.1.自定义类型定…

ElasticSearch-2-核心语法集群高可用实战-Week2-3

ES批量操作 1.批量获取文档数据 这里多个文档是指&#xff0c;批量操作多个文档&#xff0c;搜索查询文档将在之后的章节讲解 批量获取文档数据是通过_mget的API来实现的 (1)在URL中不指定index和type 请求方式&#xff1a;GET 请求地址&#xff1a;_mget 功能说明 &#…

(C++23) expected 基础使用

文章目录 ⭐前言⭐expected&#x1f39b;️基础使用&#x1f39b;️单子操作 (Monadic operations)&#x1f39a;️and_then & or_else&#x1f39a;️transform & transform_error ⭐END&#x1f31f;跋&#x1f31f;交流方式 ⭐前言 在 C17 中&#xff0c;提出了 op…

嵌入式系统stm32cube本地安装出现的问题

stm32cube在线安装很慢&#xff0c;本地安装中出现的一个bug stm32cube_fw_f4_v1281安装成功之后&#xff0c;如果想安装stm32cube_fw_f4_v1281会提示stm32cube_fw_f4_v1280未安装。 如果先安装stm32cube_fw_f4_v1280之后&#xff0c;再安装stm32cube_fw_f4_v1281还会提示这个…

算法练习题24——leetcode3296移山所需的最小秒数(二分模拟)

【题目描述】 【代码示例&#xff08;java&#xff09;】 class Solution {// 计算让工人们将山的高度降到0所需的最少时间public long minNumberOfSeconds(int mountainHeight, int[] workerTimes) {long left 0; // 最少时间初始为0long right 0; // 最大时间初始化为0// …

java--面向对象编程(中级部分)

IDE&#xff08;集成开发环境&#xff09; java-----IDE&#xff08;集成开发环境&#xff09;-CSDN博客 包 包的三大作用 区分相同名字的类 当类很多时,可以很好的管理类[看Java API 文档] 控制访问范围 包基本语 package com.hsppedu; 说明: 1. package 关键字,表示打…

Java内存泄漏排查

内存泄漏排查 1. 堆内存快照导出2. 导入内存分析工具 1. 堆内存快照导出 获取 Java 进程 ID Windows&#xff1a;执行 jps 命令&#xff0c;或任务管理器查看&#xff0c;又或者执行 tasklist 命令。 注意&#xff1a;当有多个 Java 进程时&#xff0c;任务管理器或 tasklist |…