专栏首页XAI腾讯AI-JavaAPI示例代码
原创

腾讯AI-JavaAPI示例代码

https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/tencent

SIGN签名生成算法-JAVA版本

	/**

	 * SIGN签名生成算法-JAVA版本

	 * @param HashMap<String,String> params 请求参数集,所有参数必须已转换为字符串类型

	 * @return 签名

	 * @throws IOException

	 */
	public static String getSignature(HashMap<String,String> params) throws IOException {
	        // 先将参数以其参数名的字典序升序进行排序

	        Map<String, String> sortedParams = new TreeMap<>(params);
	        Set<Map.Entry<String, String>> entrys = sortedParams.entrySet();
	        // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起

	        StringBuilder baseString = new StringBuilder();
	        for (Map.Entry<String, String> param : entrys) {
	            //sign参数 和 空值参数 不加入算法

	            if(param.getValue()!=null && !"".equals(param.getKey().trim()) && !"sign".equals(param.getKey().trim()) && !"".equals(param.getValue().trim())) {
	                baseString.append(param.getKey().trim()).append("=").append(URLEncoder.encode(param.getValue().trim(),"UTF-8")).append("&");
	            }
	        }
	        System.err.println("未拼接APPKEY的参数:"+baseString.toString());
	        if(baseString.length() > 0 ) {
	            baseString.deleteCharAt(baseString.length()-1).append("&app_key="+TencentAPI.APP_KEY_AI);
	        }
	        System.err.println("拼接APPKEY后的参数:"+baseString.toString());
	        // 使用MD5对待签名串求签

	        try {
	        	String sign = MD5.getMD5(baseString.toString());
	        	return sign;
	        } catch (Exception ex) {
	            throw new IOException(ex);
	        }
	    }

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信支付-微信红包Java版本

    扫描可以关注查看其它接口的demo效果 https://zb.oschina.net/market/opus/1325c0ab3ac1f4b6 代码链接,可根据...

    小帅丶
  • 微信支付-Java-SpringMVC基础一些代码支持

    官网文档和demo代码下载地址 https://mp.weixin.qq.com/htmledition/res/bussiness-faq/wx_app_pa...

    小帅丶
  • 企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作------SpringMVC+JSP)

    关于即时到账的开发。审核通过。简单测试如下。 希望看的可以收藏或者赞一下哦。 1:拥有自己的支付宝企业账号。去产品商店选择适合自己的方案。并签约合同。 ? 2:...

    小帅丶
  • 【JMeter系列-9】 JMeter常用内置对象

    在前文 Beanshell Sampler 与 Beanshell 断言 中,初步阐述了JMeter beanshell的使用,接下来归集整理了JMeter b...

    云深i不知处
  • 精通 Spring Boot 系列文(12)

    Spring Security 是 Spring 的一个安全模块,它很强大,但使用特别复杂。在安全管理这个领域,之前还有一个 Shiro 是比较受欢迎的,对于大...

    程序IT圈
  • 手把手教你如何优雅的使用Aop记录带参数的复杂Web接口日志

    不久前,因为需求的原因,需要实现一个操作日志。几乎每一个接口被调用后,都要记录一条跟这个参数挂钩的特定的日志到数据库。举个例子,就比如禁言操作,日志中需要记录因...

    SH的全栈笔记
  • Hibernate增删改查

    Erwin
  • 顺丰快递单号查询api接口免费对接参数以及demo

    顺丰快递对物流信息的管控较为严格,官网上也加上了由腾讯云提供的滑动验证码进行保护,如果需要大批量查询顺丰的物流信息,必须要对接顺丰官方的路由查询接口。注意,对接...

    app玩家
  • Java爬虫Get校花网所有美女图片,附源代码

    作为一个宅男,每天看看美女图是必修课。那么——作为一个程序猿加宅男,如何收藏更多的美女图片呢?这就要用到爬虫了,哈哈,我仿佛看到了无穷无尽的美女在向我招手——怎...

    三哥
  • Java爬虫Get校花网所有美女图片

    三哥

扫码关注云+社区

领取腾讯云代金券