• TaoBaoAPI简介3


    Notify消息

    (在使用签名规则时,基本的步骤都差不多!步骤:排序、拼装、签名、验证签名)

    1.功能描述:当用户订购淘宝服务成功后,TOP会发送通知消息给ISV应用。ISV可收集用户订购信息进行统计核算

    2.用户订购交互流程:

    在淘宝服务中,用户发起订购;转到订购中心,用户缴费并完成订购;再转到淘宝服务,发送ISV通知消息;由淘宝服务到ISV应用,接收通知消息并未用户开通服务

    3.Notify消息通知接收机制:
    <1>.消息类型包括:新订、续订、升级、退订。
    <2>.订购通知是通过Http协议Post给ISV应用的NotifyUrl,
    NotifyUrl的配置可通过后台的应用管理录入。
    <3>.通知功能实现方式是收到消息后,先进行签名验证。
    <4>.编码方式是UTF-8。

    4.Notify消息参数说明
    参数名  类型   描述
    userId  Long   订购者的用户数字Id
    nick    String 订购者的用户昵称
    leaseId Long   租赁实体ID:应用ID或者应用包ID
    validateDate Date 生效日期,例如:2009-01-01 00:00:00
    invalidateDate Date 失效日期,例如:2009-12-31 23:59:59
    factMoney Double 实收金额,例如:899,00,以分为单位
    subscType Long  订单类型,1=订购,2=续费,3=升级,4=后台赠送,5=自动续费,6=订单审核后生成订购关系(预留,目前TOP应用不会用到)
    versionNo Integer 版本编号:1,初级;2,中级;3,高级
    oldVersionNo Long 升级前版本号:1,初级;2,中级
    status Long      状态:1,等待开通;2,开通;3,关闭(1,表示订单将来才生效;2,表示立即生效;3,表示订单失效,用于退订的情况)
    sign  String       签名
    gmtCreateDate Date 订购发生时间
    tadgetCode String  应用实例的应用code即服务code

    5.签名规则
    将除sign之外所有参数获取过来,进行签名算法,最后与sign进行对比

    签名公式:
    sign=MD5(secretCode + param1 + value1 + param2 + value2 + … + paramN + valueN+ secretCode) ).toUpper();
    (注:即使param对应的value为空,也要以param+空串的方式进行签名)
    <1>.排序
    将所有参数param1,param2,……,paramN,按照参数名称字母顺序从小到大排列
    <2>.拼串
    将排好序的参数拼接成串,param1 + value1 + param2 + value2 + … +paramN + valueN
    <3>.首尾加密钥
    在上述字符串首部和尾部都加上应用的密钥secretCode,即secretCode + param1 + value1 + param2 + value2 + … +paramN + valueN + secretCode
    <4>.签名
    进行MD5编码,即:MD5(secretCode + param1 + value1 + param2 + value2 + … + paramN + valueN+ secretCode) )
    <5>.转换大写
    再转换成大写字母,即:MD5(secretCode + param1 + value1 + param2 + value2 + … + paramN + valueN+ secretCode) ).toUpper()

    *****************************************************************
    容器回调参数签名规则(版本号验证)

    1.容器回调参数签名的意义
    对开发者而言,从此不需要依赖于Notify通知消息或者taobao.appstore.subscribe.get来给用户开通订购关系。开发者只需对从容器过来的访问请求进行签名验证,一旦校验通过,即可让用户访问该应用。即:完全信任淘宝容器过来的访问请求。关于用户的订购关系,后续我们会在合作伙伴后台里提供查询和导出功能,同时保留API查询功能

    2.参数说明
    目前,在使用淘宝箱订购的应用时,系统会跳转到"用户TOP授权码"页面,需要用户同意"免责声明 ",该页面出接收回调签名参数外,还接收如下四个请求参数:
    参数名  类型  描述
    leaseId Long 插件实例ID
    versionNo Long 用户订购的应用版本号
    appkey  String 应用的AppKey
    timestamp Long 当前系统的时间戳
    (注:考虑传递明文参数的安全性,需要对以上参数进行签名)

    3.签名规则

    <1>.排序:
    根据参数名称,将以上四个请求参数,按照字母先后顺序排序,例如:leaseId=51865,versionNo=1,appkey=93996,timestamp=1287547223869,排好序为:appkey=93996,leaseId=51865,timestamp=1287547223869,versionNo=1
    <2>.拼装:
    将以上排好序的参数键值对,拼装成串,例如:appkey=93996,leaseId=51865,timestamp=1287547223869,versionNo=1拼装为:appkey93996leaseId51865timestamp1287547223869versionNo1
    <3>.签名(utf-8编码)
    将secret同时拼接到参数字符串头、尾部,进行md5加密,再转化成大写,格式是:uppercase(hex(md5(secretkey1value1key2value2...secret))。 例如:secert= c1927d998894b85dfab19cbcc8aee93b, sign=uppercase(hex(md5(c1927d998894b85dfab19cbcc8aee93bappkey93996leaseId51865timestamp1287547223869versionNo1c1927d998894b85dfab19cbcc8aee93b))) = 639B98FFD3B33D275238FA5B476AAD52
    <4>.验证签名
    将请求参数sign的值与以上步骤计算出来的sign比较,如果相等,则签名验证通过,否则签名验证失败 可选地,可以判断当前系统的时间戳与请求参数timestamp(精确到毫秒级别)进行比较,如果超过一定的时间如6分钟,则拒绝该次请求

  • 相关阅读:
    开启我的博客历程
    RTSP协议视频智能流媒体服务平台EasyNVR录像计划功能实现过程
    如何在RTSP协议视频智能平台EasyNVR未登录的情况下也可以调用通道直播链接的接口?
    环保设备“云上查” 排污监管“线上盯” EasyNVR视频边缘计算网关助力“智慧环保”实现“智慧”监管
    网络摄像头RTSP协议视频平台EasyNVR录像计划模块开发过程
    如何在SSH连接linux的情况下使用wireshark抓包TSINGSEE青犀视频云边端架构产品中的问题?
    RTSP协议TSINGSEE青犀视频平台EasyNVR如何通过GET传值的方式获取通过登录鉴权
    TSINGSEE青犀视频平台EasyNVR为何需要跨域?为什么不能单纯的从前端来解决跨域问题?
    【解决方案】TSINGSEE青犀视频云边端架构RTSP视频边缘计算平台EasyNVR搭建“云上透明厨房”远程监控平台方案
    【解决方案】“云-边-端”三级架构协同打造基于安防视频云服务EasyCVR的智慧城市解决方案
  • 原文地址:https://www.cnblogs.com/SanMaoSpace/p/2143001.html
Copyright © 2020-2023  润新知