百度云推送 权限验证失败

u012903992 2017-03-08 10:22:33
在使用百度云推送的接口出现权限验证失败,报错:{"request_id":23356184,"error_code":20265,"error_msg":"Authentication failed"}
代码都检查了无数遍了,都没有什么问题,有大神指点一下嘛

用c++实现的

void CenterSchedule::HandleTuisongSingleDevice(const std::string channel_id, const std::string account_id)
{
std::string url = GET_CONFIG_STRING("tuisong_single_url", "");
std::string api_key = GET_CONFIG_STRING("api_key", "");
std::string secret_key = GET_CONFIG_STRING("secret_key", "");
int cur_time = (int)time(0);
SimpleJsonObject object;
object["title"] = "hello";
object["description"] = "helloworld";
std::string result;
object.GetResult(result);

std::map<std::string, std::string> param_list;
param_list["apikey"] = api_key;
param_list["timestamp"] = Utility::FormateToString(cur_time);
param_list["expires"] = Utility::FormateToString((cur_time)+60*60*24);
param_list["device_type"] = "3";
param_list["channel_id"] = channel_id;
param_list["msg"] = result;
param_list["msg_type"] = "1";

std::string sign = ALittle::CommonHelp::TuisongSign(param_list, "POST", url, secret_key);

std::string param = "apikey=" + api_key
+ "×tamp=" + Utility::FormateToString(cur_time)
+ "&expires=" + Utility::FormateToString((cur_time)+60*60*24)
+ "&device_type=3"
+ "&sign=" + sign
+ "&msg_type=1"
+ "&channel_id=" + channel_id
+ "&msg=" + result;

param = STRING_2_UTF8(HttpSystem::UrlEncode(param).c_str());

ALITTLE_INFO("param = " << param);
std::string add_header = "Content-Type: application/x-www-form-urlencoded;charset=utf-8\r\n";
add_header += "User-Agent: BCCS_SDK/3.0 (Darwin; Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64; x86_64) PHP/5.6.3 (Baidu Push Server SDK V3.0.0 and so on..) cli/Unknown ZEND/2.6.0\r\n";
std::function<void(bool, const std::string&, const std::string&)> func;
func = std::bind(HandleBaiduTuisongReuslt, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
ALittle::HttpSystem::SendRequestPostJson(url, param, func, add_header);
}



//百度云推送的签名
std::string CommonHelp::TuisongSign(std::map<std::string, std::string> param_map, const std::string& http_method, const std::string& url, const std::string& secret_key)
{
std::vector<std::string> vector_list;

std::map<std::string, std::string>::iterator it, end = param_map.end();
for (it = param_map.begin(); it != end; ++it)
vector_list.push_back(it->first);

sort(vector_list.begin(), vector_list.end(), TuisongSignCmp);

std::string vector_string = http_method + url;
for(int i = 0; i < vector_list.size(); i++)
{
vector_string += vector_list[i] + "=" + param_map[vector_list[i]];
}
vector_string += secret_key;

ALITTLE_INFO("vector_string = " << vector_string);
ALITTLE_INFO("encode = "<<HttpSystem::UrlEncode(vector_string));
std::string sign_md5 = ScriptSystem::MD5(HttpSystem::UrlEncode(vector_string));
ALITTLE_INFO("sign = "<<sign_md5);
return sign_md5;
}
...全文
257 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
【毕业设计】基于springboot的仿共享单车后台源码及笔记【源码+SQL脚本】.zip 一个基于springboot的类似于共享单车的后台系统,包括手机号码注册、登陆、定位、骑行轨迹和消息推送等功能 技术栈: SpringBoot SpringMVC Mybatis(基础框架) Mysql springSecurity(权限验证和请求拦截) AES对称加密数据,RSA非对称加密公钥key(对用户信息进行加密) redis缓存token(token作为用户的标识,维护用户的状态,类似于session) redis结合ActiveMQ发送短信验证码和防止恶意短信无限发送 整合云存储,保存头像(七牛云对象存储为例) 整合mongodb获取附近单车以及距离,主要是geoHash算法(重点) 百度云推送的实战-通知开锁 锁车之后的一系列操作(订单、消费、锁车,支付没有做) 骑行轨迹的保存(保存在mongodb中) 其他:logback,lombok,fastjson, 全局异常和高复用状态类封装、 利用mysql主键自增特性实现单车连续编号 学习这个项目的时候,对其思路做了笔记,我这里按照自己的写法,与其略有不同, 但是基本思路都是一样的。 注意: 本机环境是jdk8,tomcat8,mysql5.7.13,windows下,IDE是IntelliJ IDEA, mongodb(mongodb-win32-x86_64-2008plus-v3.2-latest),redis(redis64-3.0.501), activeMq(apache-activemq-5.15.2) api测试工具为Postman,还用了mongodb客户端Robo 3T,redis客户端工具RedisDesktopManage 跑这个代码之前,需要准备好数据库,开启redis、mongodb、activeMQ服务。 需要注册自己的七牛云账号(上传头像)、秒嘀账号(发送短信验证码)、百度云推送账号
五指CMS本次系统主要更新一下内容(20150519) 1、php5.4以上环境,部分程序不能安装的问题。 五指CMS本次系统主要更新一下内容(20150518): − 支持php5.2、php5.3、php5.4、php5.5、php5.6!(推荐使用5.4或更高版本!) − 新增图片模型及前台模板展示 − 新增下载模型及前台模板展示 − 全新会员中心 − 新增短信手机验证 − 新增会员公司模型,机构模型注册 − 新增积分管理、积分配置、积分消费记录 − 新增订单管理 − 新增优惠券管理 − 新增百度地图字段 − 新增下载字段 − 新增管理模型内容字段 − 新增全新门户版PC模板1套 − 新增全新门户版手机模板1套 − 新增云端区块ID添加,后台菜单云端ID,开发者可轻松打包发布! − 新增微信公众号自动回复功能 − 新增微信公众号菜单设置 − 新增已关注微信公众号通过公众号进入Html5页面自动登录 − 修复php5.2上传附件问题 − 修复php5.3页面部分页面白屏问题 − 修复多处字段输出格式错误问题 − 其它修复项多达50项 五指cms更新说明: 新增内容手动分页 新增百度地图 新增订单管理模块 新增订单地址管理 增加Microsoft YaHei字体 新增推广邀请模块 新增私密下载,下载函数 新增百度地图 新增筛选功能 修正全局开始时间bug 栏目缓存增加 ismenu缓存字段。 修改密码同步UC 删除会员同步删除第三方登录信息 修复图片预览 修复基本设置,统计代码无法设置js问题。 修正排行榜标题为空bug 修复区块字段。 修复伪静态列表时,分页问题 修复联动菜单添加子选项,上级分类显示问题 修复后台用户名,在前台登录其他用户,出现的用户名错乱。 修复栏目列表SEO 标题设置不生效bug 删除 ueditor 中的 php文件夹。 修复:变量不存在bug。 优化栏目分页 优化自动更新会员配置 优化订单地址显示方式 优化90分钟之内为人性化提示 优化首页菜单 优化多选字段名称改为:单选|多选 使用合作网站登录页面优化 批量移动栏目排版修改 删除无用img资源   五指cms由原phpcms V9 负责人王参加主导开发,前后台界面采用html5 css3技术,可以进行跨屏、跨设备管理内容,极大的提升了用户体验。五指CMS主要包含以下功能点:   一、模型化设计: 1、全站统一模型,方便二次开发; 2、独创共享模型,独立模型,大小数据全部按需存储; 3、支持10多种不同类型的字段添加:如,文本字段,超级字段,地图字段,滑动条字段,组图字段,下载字段,URL加密字段等。   二、数据读写分离: 1、默认支持数据读写分离; 2、支持1台主数据,多台从数据库; 3、支持按照权重分配数据资源。   三、安全性设计: 1、支持缓存文件目录独立设置; 2、支持www目录与核心代码分离部署; 3、支持cookie加密存储; 4、支持后台程序文件与前台文件分离; 5、支持全局Mysql注入过滤; 6、支持上传目录自定义,禁用php执行; 7、后台登录采用session+session验证码,记录所有登录历史; 8、后台管理日志记录; 9、是否允许修改模版需要有服务器文件管理权限; 10、所有菜单都需要进行权限验证;   四、性能设计: 1、缓存支持内存缓存,如:memcache 缓存; 2、不重复生成和检查模版缓存,提升性能;   五、移动优先设计: 1、默认支持移动端访问自适应; 2、无需重复发文章,文章一键推送。         相关阅读 同类推荐:CMS系统

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧