抖音验证签名和接口含中文签名,需要在发送端加上utf8编码
抖音验证签名和接口含中文签名,需要在发送端加上utf8编码
抖音验签和抖音异步通知回调验签解决:是对整个接收的字符串做验签,而不是部分数据做验签
解决中文参数问题,否则中文乱码报验签错误
签名算法
https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/signature-algorithm/
请注意使用原生的request body中的内容进行验签,避免因框架解析导致字段顺序变化。
(重要) 验签时需要接收原始的 http request body 数据,并不要进行任何处理。保证原始的 body 数据,作为字符串参与验签。如果是 JAVA 语言,
回调接口需要用字符串接收,不要用 Bean 接收,Bean 接收参数会乱序导致验签不过。
在读取网络包的时候如果使用了readLine函数则可能导致验签通不过,因为readLine默认会在每次读取的时候在行位append '\n'字符。
## 原因1: 抖音异步通知回调验签解决-230607-是对整个接收的字符串做验签,而不是部分数据做验签
签名问题:请提供参与签名的全部参数,提供签名计算代码。
验签问题:请提供接收到的平台请求包原始内容,提供验签代码。
你们验证签名用的reqbody搞错了吧
你们是不是把内部的那个msg搞出来当reqbody了
好的,谢谢。原先担保支付验证签名的是取的msg
[捂脸]
文档理解歧义了
应答时间戳
从应答 HTTP 头Byte-Timestamp中获取应答时间戳。 byte-timestamp
应答随机串
从应答 HTTP 头Byte-Nonce-Str中获取应答随机串。 byte-nonce-str
应答报文主体
应答中的报文主体(response body)。
第二步:获取应答签名
应答签名值通过 HTTP 头Byte-Signature传递 byte-signature
##原因2:
//核心代码,解决中文参数问题,否则中文乱码报验签错误。
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
application/json 修改为: application/json;charset=UTF-8
public final static String APPLICATION_JSON_VALUE = "application/json";
public final static String APPLICATION_JSON_UTF8_VALUE = "application/json;charset=UTF-8";
public static String doPostForJson(String url, String json,String byteAuthorization) {
RestTemplate restTemplate = new RestTemplate();
logger.info("restTemplate invoke post method. url:[{}], json:[{}],byteAuthorization=[{}]", url, json,byteAuthorization);
long startTime = System.currentTimeMillis();
String result = "";
HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.APPLICATION_JSON); //APPLICATION_JSON_UTF8_VALUE
//核心代码,解决中文参数问题
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Byte-Authorization",byteAuthorization);
//核心代码
ArrayList<MediaType> accepts = new ArrayList<>();
accepts.add(new MediaType("application","json", Charset.forName("UTF-8")));
headers.setAccept(accepts);
HttpEntity<String> request = new HttpEntity<>(json, headers);
result = restTemplate.postForEntity(url,request,String.class).getBody();
logger.info("restTemplate invoke [{}] consume time is,[{}] ms.", url, System.currentTimeMillis() - startTime);
logger.info("restTemplate invoke post method. result:[{}]", result);
return result;
}
抖音验证签名和接口含中文签名,需要在发送端加上utf8编码的更多相关文章
- 专治编译器编辑器vscode中文乱码输出 win10 配置系统默认utf-8编码
VS Code输出会出现乱码,很多人都遇到过.这是因为VS Code内部用的是utf-8编码,cmd/Powershell是gbk编码.直接编译,会把“你好”输出成“浣犲ソ”.如果把cmd的活动代码页 ...
- python爬取抖音APP视频教程
本文讲述爬取抖音APP视频数据(本文未完,后面还有很多地方优化总结) 公众号回复:抖音 即可获取源码 1.APP抓包教程,需要用到fiddler fiddler配置和使用查看>>王者荣耀盒 ...
- html、js简单实现含中文csv文件下载(后端为django)
1.在django views.py中使用HttpResponse views.py首行加上utf-8编码,将默认unicode编码变为utf-8 # -*- coding:utf-8 -*- 下面 ...
- 抖音快手短视频去水印API,接口开发文档
开发者官网:http://api.lingquan166.com/ 简介:根据抖音.微视.小红书.皮皮搞笑等APP中复制出来的链接,解析获取短视频的标题.封面.无水印短视频地址等信息. 接口地址: h ...
- 利用抖音Cookie充值接口提取支付链接,个人调起原生微信h5支付宝h5支付
最近开始搞一些个人支付通道的开发,方便个人不用和第三方平台签约就能收款,省去很多流程手续的成本. 然后翻了一下网上并没有太多现成的技术教程,只能自己研究着搞了. 这次要分享的是利用抖音的充值接口,去分 ...
- 抖音 滑块验证方案 s_v_web_id 参数分析
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! 抖音web端 s_v_web_id 参数 ...
- python 手机App数据抓取实战二抖音用户的抓取
前言 什么?你问我国庆七天假期干了什么?说出来你可能不信,我爬取了cxk坤坤的抖音粉丝数据,我也不知道我为什么这么无聊. 本文主要记录如何使用appium自动化工具实现抖音App模拟滑动,然后分析数据 ...
- JavaWeb-SpringBoot(抖音)_一、抖音项目制作
JavaWeb-SpringBoot(抖音)_一.抖音项目制作 传送门 JavaWeb-SpringBoot(抖音)_二.服务器间通讯 传送门 JavaWeb-SpringBoot(抖音)_三.抖音项 ...
- 【爬虫集合】抖音API分析
1. 分析接口 Charles注册码 Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4 抖音API分析 抖音.猫眼网页 ...
- android愤怒小鸟游戏、自定义View、掌上餐厅App、OpenGL自定义气泡、抖音电影滤镜效果等源码
Android精选源码 精练的范围选择器,范围和单位可以自定义 自定义View做的小鸟游戏 android popwindow选择商品规格颜色尺寸效果源码 实现Android带有锯齿背景的优惠样式源码 ...
随机推荐
- 谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?
简介: 我们也常有听说例如AK被外部攻击者恶意获取,或者员工无心从github泄露的案例,最终导致安全事故或生产事故的发生.AK的应用场景极为广泛,因此做好AK的管理和治理就尤为重要了.本文将通过两种 ...
- DataWorks搬站方案:Airflow作业迁移至DataWorks
简介: DataWorks提供任务搬站功能,支持将开源调度引擎Oozie.Azkaban.Airflow的任务快速迁移至DataWorks.本文主要介绍如何将开源Airflow工作流调度引擎中的作业迁 ...
- WPF 制作一个加密文件夹应用
我有一个需求就是将我的一些文件夹的内容同步到网盘上面去.但是我是不信任现在的各个网盘的,网盘的数据被我认为是会被泄露的数据,我需要同步的文件夹中,可能存在隐私的数据.于是我就想到了将文件夹里面的内容进 ...
- 如何在M1 MACBOOK上准备好ORB-SLAM2的环境
1. 环境 M1 Macbook Air Parallels Desktop 17 关于虚拟机,在之前尝试了UTM,但是性能欠佳,卡顿情况比较多,而且未能解决联网问题,最终只能含泪放弃 Paralle ...
- VUE中具名插槽和匿名插槽的使用
在我的项目中由于使用的是vue+element一个自用框架进行开发,插槽用法相较简单 比如在列表字段columns使用slotname即可 <template v-slot:_spec=&quo ...
- 从 Rollover+curator 到 ILM
数据量增长,当前存在的问题: 查询与写入越来越慢,聚合的速度慢的离谱,聚合的数据量大一些的话,可能出现超时失败,甚至OOM 磁盘和内存资源以肉眼可见的速度快速消耗,甚至出现满载的情况 JVM频繁GC, ...
- 【图形数据集】CIFAR-10 dataset数据集
文献引用:https://www.cs.toronto.edu/~kriz/cifar.html The CIFAR-10 dataset The CIFAR-10 dataset consists ...
- three.js教程1-快速入门
1.项目开发环境引入threeJs 如果采用的是Vue + threejs或React + threejs技术栈,threejs就是一个js库,直接通过npm命令行安装就行. npm安装特定版本thr ...
- 基于FPGA的贪吃蛇游戏 之代码解析
基于FPGA的贪吃蛇游戏 之代码解析 1. 代码结构 代码结构包含7格.v文件. 下面依次解析. 2. 代码解析 (1) seg_display.v 数码管的译码模块是最熟悉,最简单的模块了.这里是共 ...
- 鸿蒙HarmonyOS实战-Stage模型(ExtensionAbility组件)
一.ExtensionAbility组件 1.概念 HarmonyOS中的ExtensionAbility组件是一种能够扩展系统功能的能力组件.它可以通过扩展系统能力接口,为应用程序提供一些特定的功能 ...