<%
'
'查询通知应答类
'============================================================================
'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

%>

Tmall发送码asp验证sing(自有码开发)的更多相关文章

  1. NodeJS 微信公共号开发 - 响应微信发送的Token验证(山东数漫江湖)

    背景 使用 NodeJS 进行微信公共号开发,首先需要响应微信发送的Token验证,官方文档 填写服务器配置 登录微信公共平台,在开发下的基本配置打开该页面. 依次填写接口的 URL.自定义的 Tok ...

  2. asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证

    原文:asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证 在前面的文章中我们曾经涉及到ControllerActionInvoker类GetPara ...

  3. asp.net mvc源码分析-ModelValidatorProviders 客户端的验证

    几年写过asp.net mvc源码分析-ModelValidatorProviders 当时主要是考虑mvc的流程对,客户端的验证也只是简单的提及了一下,现在我们来仔细看一下客户端的验证. 如图所示, ...

  4. 初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录

    初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-24 一.创建T4模板,建 ...

  5. OpenID Connect Core 1.0(四)使用授权码流验证(上)

    3.1 使用授权码流验证(Authentication using the Authorization Code Flow) 本节描述如何使用授权码流执行验证.当使用授权码流时,会从令牌终结点返回的所 ...

  6. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  7. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  8. ASP.NET MVC 源码分析(一)

    ASP.NET MVC 源码分析(一) 直接上图: 我们先来看Core的设计: 从项目结构来看,asp.net.mvc.core有以下目录: ActionConstraints:action限制相关 ...

  9. ASP.NET Core[源码分析篇] - Authentication认证

    原文:ASP.NET Core[源码分析篇] - Authentication认证 追本溯源,从使用开始 首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务 ...

随机推荐

  1. iTunes Connect TERMS OF SERVICE

    iTunes Connect TERMS OF SERVICE THESE TERMS OF SERVICE CONSTITUTE A LEGAL AGREEMENT BETWEEN YOU AND ...

  2. 奶牛通讯 usaco 网络流

    这道题很有意思,原题是只需输出最小割集大小,现在oj上改成了输出字典序最小的割集: 题解:可以考虑从小到大删边,若删掉这条边后,最小割变小,保持不变,记录此时的最小割大小: 若最小割不变,恢复这条边: ...

  3. GS初始化

    开启GameServer模式 init函数,现在看看这个大函数干什么的 //这个init也是GameServerUI里面调的,这个线程其实就做了一些初始化的工作,其实这里面没有什么主不主线程,都是在一 ...

  4. POJ 1700 Crossing River (贪心)

    Crossing River Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9585 Accepted: 3622 Descri ...

  5. 驱动笔记 - IO端口和IO内存

    访问IO端口 (#include <asm/io.h>) 设备资源struct resource{ resource_size_t start; //资源起始物理地址 resource_s ...

  6. jquery ajax清除缓存的方法

    function cityListChange(cityCode){ //{lon=121.491121, name=上海, province=上海市, telPrefix=021, province ...

  7. MariaDB Galera Cluster集群

    一.MariaDB Galera Cluster概要: 1.简述: MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步 ...

  8. 用 VIPER 构建 iOS 应用架构(2)

    [编者按]本篇文章由 Jeff Gilbert 和 Conrad Stoll 共同编写,通过构建一个基础示例应用,深入了解 VIPER,并从视图.交互器等多个部件理清 VIPER 的整体布局及思路.通 ...

  9. JQuery原理及深入解析--转载

    总体架构 jQuery是个出色的javascript库,最近结合它写javascript,看了下源码. 先从整体.全局的看,jQuery的源码几乎都在下面的代码中: (function() { //… ...

  10. delphi的socket通讯 多个客户端 (转)

    ClientSocket组件为客户端组件.它是通信的请求方,也就是说,它是主动地与服务器端建立连接. ServerSocket组件为服务器端组件.它是通信的响应方,也就是说,它的动作是监听以及被动接受 ...