首页 > 其他分享 >抖音验证签名和接口含中文签名,需要在发送端加上utf8编码

抖音验证签名和接口含中文签名,需要在发送端加上utf8编码

时间:2024-06-15 15:43:37浏览次数:12  
标签:String utf8 应答 headers json 抖音 签名 验签

抖音验证签名和接口含中文签名,需要在发送端加上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;
    }

 

标签:String,utf8,应答,headers,json,抖音,签名,验签
From: https://www.cnblogs.com/oktokeep/p/18249360

相关文章

  • 支付宝签名和验签使用JSONObject是最优解。json字符串顺序和==符号都一致演示代码
    支付宝签名和验签使用JSONObject是最优解。json字符串顺序和==符号都一致演示代码支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象https://www.cnblogs.com/oktokeep/p/18249346packagecom.example.core.mydemo;importcom.alibaba.fastjson.JSON;imp......
  • 安卓签名文件打包错误 Invalid keystore format
    1.错误java.io.IOException:Invalidkeystoreformat...2.解决方案        方案1:                找到debug.keystore并删除                 路径 User\用户名\android\debug.keystore                 ......
  • 抖音信息流广告如何投效果更好
    随着抖音的迅速崛起,越来越多的广告主选择在抖音平台上投放信息流广告。信息流广告以其精准的定向、高效的转化和较低的成本,成为广告主的优选。那么,如何让抖音信息流广告投放效果更好呢?本文将为你详细解析抖音信息流广告的投放策略,帮助你提升广告效果。一、明确投放目标在......
  • TIKTOK海外抖音实操班:下载注册/配置/养号/引流/发视频/等等(共17课)
    这个课程教你怎样在Tiktok上注册、设置、养号、吸引流量和发布视频。内容包括市场前景、与抖音的区别、下载和设置、网络环境、注册账号、打造优质号、找热门素材、使用热门标签和音乐、保持视频清晰度、上传技巧、避免账号被降权或封禁、优化流量下降、最佳发布时间和提高完播......
  • AI智能文案助手ChatMoney:一键打造抖音爆款视频,助你轻松吸引千万级流量!
    本文由ChatMoney团队出品引言看着抖音上别人的视频轻松破百万点赞,是不是心里痒痒的?想知道他们是怎么做到的?其实,他们可能只是比您先一步掌握了这个秘密武器——ChatMoney。这不仅仅是一个工具,它是您抖音视频流量变现的加速器。您是否已经厌倦了平淡无奇的文案,看着自己的视频......
  • 抖音爆款制造机!用ChatMoney,一键生成爆款视频文案,轻松获得千万流量!
    本文由ChatMoney团队出品引言看着抖音上别人的视频轻松破百万点赞,是不是心里痒痒的?想知道他们是怎么做到的?其实,他们可能只是比您先一步掌握了这个秘密武器——ChatMoney。这不仅仅是一个工具,它是您抖音视频流量变现的加速器。您是否已经厌倦了平淡无奇的文案,看着自己的视频......
  • 实现抖音视频滑动功能vue3+swiper
    首先,你需要安装和引入Swiper库。可以使用npm或者yarn进行安装。pnpminstallswiper然后在Vue组件中引入Swiper库和样式。//导入Swiper组件和SwiperSlide组件,用于创建轮播图import{Swiper,SwiperSlide}from'swiper/vue';//导入Swiper的CSS样式,确保轮播图......
  • 针对PDF文档:印章、数字签名、编辑保护、PDF/A的Java工具类
    背景  本文是基于Java语言,引入POI从而提供将富文本编辑器内的html内容转换为docx的方式。代码  引入pom坐标<dependency><groupId>cn.net.pap</groupId><artifactId>pap4j-common-pdf</artifactId><version>0.0.1</version></......
  • Leetcode 力扣114. 二叉树展开为链表 (抖音号:708231408)
    给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2......
  • 纯CSS+单个div实现抖音LOGO
    纯CSS+单个div就能绘制抖音LOGO关键点:主要借助了两个伪元素实现了整体结构,借助了drop-shadow生成一层整体阴影drop-shadow只能是单层阴影,所以另一层阴影需要多尝试contrast(150%)brightness(110%)则可以增强图像的对比度和亮度,更贴近抖音LOGO的效果预览结果如下:在线......