• Tmall发送码asp验证sing(自有码开发)


    <%
    '
    '查询通知应答类
    '============================================================================
    'api说明:
    'getKey()/setKey(),获取/设置密钥
    'getParameter()/setParameter(),获取/设置参数值
    'getAllParameters(),获取所有参数
    'isTenpaySign(),是否财付通签名,true:是 false:否
    'getDebugInfo(),获取debug信息
    '
    '============================================================================
    '


    Class TmallResponseHandler

    '密钥
    Private key

    '应答的参数
    Private parameters

    'debug信息
    Private debugInfo

    '初始构造函数
    Private Sub class_initialize()
    key = ""
    Set parameters = Server.CreateObject("Scripting.Dictionary")
    debugInfo = ""

    parameters.RemoveAll
    'GET
    For Each k In Request.QueryString
    v = Request.QueryString(k)
    setParameter k,v
    Next

    'POST
    For Each k In Request.Form
    v = Request(k)
    setParameter k,v
    Next

    End Sub

    '获取密钥
    Public Function getKey()
    getKey = key
    End Function

    '设置密钥
    Public Function setKey(key_)
    key = key_
    End Function

    '获取参数值
    Public Function getParameter(parameter)
    getParameter = parameters.Item(parameter)
    End Function

    '设置参数值
    Public Sub setParameter(parameter, parameterValue)
    If parameters.Exists(parameter) = True Then
    parameters.Remove(parameter)
    End If
    parameters.Add parameter, parameterValue
    End Sub

    '获取所有请求的参数,返回Scripting.Dictionary
    Public Function getAllParameters()
    getAllParameters = parameters
    End Function

    '是否Tmall签名
    'true:是 false:否
    Public Function isTamllSign()

    timestamp = getParameter("timestamp")
    order_id = getParameter("order_id")
    mobile = getParameter("mobile")
    num = getParameter("num")
    method = getParameter("method")
    taobao_sid = getParameter("taobao_sid")
    seller_nick = getParameter("seller_nick")
    item_title = getParameter("item_title")
    send_type = getParameter("send_type")
    consume_type = getParameter("consume_type")
    sms_template = getParameter("sms_template")
    valid_start = getParameter("valid_start")
    valid_ends = getParameter("valid_ends")
    num_iid = getParameter("num_iid")
    outer_iid = getParameter("outer_iid")
    sub_outer_iid = getParameter("sub_outer_iid")
    sku_properties = getParameter("sku_properties")
    token = getParameter("token")
    total_fee = getParameter("total_fee")
    weeks = getParameter("weeks")
    left_num = getParameter("left_num")
    'sign 不在能当道待加密的串里
    signPars = Array("consume_type="&consume_type, "item_title="&item_title, "left_num="&left_num,"method="&method, "mobile=" & mobile,"num="&num, "num_iid="&num_iid, "order_id="&order_id,"outer_iid="&outer_iid, "seller_nick="&seller_nick, "send_type="&send_type, "sku_properties="&sku_properties , "sms_template="&sms_template, "sub_outer_iid="&sub_outer_iid,"taobao_sid="&taobao_sid, "timestamp="&timestamp, "token="&token, "total_fee="&total_fee,"valid_ends="&valid_ends, "valid_start="&valid_start, "weeks=" & weeks)

    Count=ubound(signPars)
    'For i = Count TO 0 Step -1
    ' minmax = signPars( 0 )
    ' minmaxSlot = 0
    ' For j = 1 To i
    ' mark = (signPars( j ) > minmax)
    ' If mark Then
    ' minmax = signPars( j )
    ' minmaxSlot = j
    ' End If
    ' Next
    ' If minmaxSlot <> i Then
    ' temp = signPars( minmaxSlot )
    ' signPars( minmaxSlot ) = signPars( i )
    ' signPars( i ) = temp
    ' End If
    ' Next

    For j = 0 To Count Step 1
    value = SPLIT(signPars( j ), "=")
    If value(1)<>"" then
    param= param&value(0)&value(1)
    End If
    Next

    inputkey = key&param

    Dim sign
    sign= UCase(ASP_MD5(inputkey))

    Dim tmallSign
    tmallSign = UCase(getParameter("sign"))

    'debugInfo
    debugInfo = " => sign:" & sign & " TmallSign:" & tmallSign &" md5 "&ASP_MD5(inputkey)&" md5str "&inputkey

    isTamllSign = (sign = tmallSign)

    End Function


    '获取debug信息
    Function getDebugInfo()
    getDebugInfo = debugInfo
    End Function

    End Class


    %>

  • 相关阅读:
    samdump2获取虚拟机密码
    PHP执行cmd方法若干
    Aircrack-ng学习笔记之无AP破解WiFi密码
    Python基础:extend与append的区别
    Python基础:dictionary
    UVALive 3177 长城守卫
    UVALive 3902 网络
    UVA 11520 填充正方形
    UVALive 3635 分派
    UVALive 3971 组装电脑
  • 原文地址:https://www.cnblogs.com/wcLT/p/3568740.html
Copyright © 2020-2023  润新知