asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付 仅仅是多了一个defalutbank的參数。

详细看

open.alipay.com

  1. <%
  2. ' 类名:AlipaySubmit
  3. ' 功能:支付宝各接口请求提交类
  4. ' 具体:构造支付宝各接口表单HTML文本。获取远程HTTP数据
  5. ' 版本号:3.3
  6. ' 改动日期:2012-07-13
  7. ' 说明:
  8. ' 以下代码仅仅是为了方便商户測试而提供的例子代码,商户能够依据自己站点的须要,依照技术文档编写,并不是一定要使用该代码。
  9. ' 该代码仅供学习和研究支付宝接口使用,仅仅是提供一个參考
  10. %>
  11.  
  12. <!--#include file="alipay_config.asp"-->
  13. <!--#include file="alipay_core.asp"-->
  14.  
  15. <%
  16.  
  17. '支付宝网关地址(新)
  18. GATEWAY_NEW = "https://mapi.alipay.com/gateway.do?"
  19.  
  20. Class AlipaySubmit
  21.  
  22. ''
  23. ' 生成签名结果
  24. ' param sParaSort 待签名的数组
  25. ' return 签名结果字符串
  26. Private Function BuildRequestMysign(sParaSort)
  27.  
  28. '把数组全部元素,依照“參数=參数值”的模式用“&”字符拼接成字符串
  29. prestr = CreateLinkstring(sParaSort)
  30.  
  31. '获得签名结果
  32. Select Case sign_type
  33. Case "MD5" BuildRequestMysign = Md5Sign(prestr,key,input_charset)
  34. Case Else BuildRequestMysign = ""
  35. End Select
  36. End Function
  37.  
  38. ''
  39. ' 生成要请求给支付宝的參数数组
  40. ' param sParaTemp 请求前的參数数组
  41. ' return 要请求的參数数组
  42. Private Function BuildRequestPara(sParaTemp)
  43. Dim mysign
  44. '过滤签名參数数组
  45. sPara = FilterPara(sParaTemp)
  46.  
  47. '对请求參数数组排序
  48. sParaSort = SortPara(sPara)
  49.  
  50. '获得签名结果
  51. mysign = BuildRequestMysign(sParaSort)
  52.  
  53. '签名结果与签名方式增加请求提交參数组中
  54. nCount = ubound(sParaSort)
  55. Redim Preserve sParaSort(nCount+1)
  56. sParaSort(nCount+1) = "sign="&mysign
  57. Redim Preserve sParaSort(nCount+2)
  58. sParaSort(nCount+2) = "sign_type="&sign_type
  59.  
  60. BuildRequestPara = sParaSort
  61. End Function
  62.  
  63. ''
  64. ' 生成要请求给支付宝的參数数组字符串
  65. ' param sParaTemp 请求前的參数数组
  66. ' return 要请求的參数数组字符串
  67. Private Function BuildRequestParaToString(sParaTemp)
  68. Dim sRequestData
  69. '待签名请求參数数组
  70. sPara = BuildRequestPara(sParaTemp)
  71. '把參数组中全部元素,依照“參数=參数值”的模式用“&”字符拼接成字符串。而且对其做urlencode编码处理
  72. sRequestData = CreateLinkStringUrlEncode(sPara)
  73.  
  74. BuildRequestParaToString = sRequestData
  75. End Function
  76.  
  77. ''
  78. ' 建立请求。以表单HTML形式构造(默认)
  79. ' param sParaTemp 请求前的參数数组
  80. ' param sMethod 提交方式。
  81.  
  82. 两个值可选:post、get
  83. ' param sButtonValue 确认button显示文字
  84. ' return 提交表单HTML文本
  85. Public Function BuildRequestForm(sParaTemp, sMethod, sButtonValue)
  86. Dim sHtml, nCount
  87. '待请求參数数组
  88. sPara = BuildRequestPara(sParaTemp)
  89.  
  90. sHtml = "<form id='alipaysubmit' name='alipaysubmit' action='"& GATEWAY_NEW &"_input_charset="&input_charset&"' method='"&sMethod&"'>"
  91.  
  92. nCount = ubound(sPara)
  93. For i = 0 To nCount
  94. '把sPara的数组里的元素格式:变量名=值,切割开来
  95. iPos = Instr(sPara(i),"=") '获得=字符的位置
  96. nLen = Len(sPara(i)) '获得字符串长度
  97. sItemName = left(sPara(i),iPos-1) '获得变量名
  98. sItemValue = right(sPara(i),nLen-iPos)'获得变量的值
  99.  
  100. sHtml = sHtml & "<input type='hidden' name='"& sItemName &"' value='"& sItemValue &"'/>"
  101. next
  102.  
  103. 'submitbutton控件请不要含有name属性
  104. 'submitbutton默认设置为不显示
  105. sHtml = sHtml & "<input type='submit' value='"&sButtonValue&"' style='display:none;'></form>"
  106.  
  107. sHtml = sHtml & "<script>document.forms['alipaysubmit'].submit();</script>"
  108.  
  109. BuildRequestForm = sHtml
  110. End Function
  111.  
  112. Public Function BuildRequestFormbank( trade_no , subject , total_fee ,body ,show_url )
  113. Dim sHtml
  114.  
  115. sHtml = "<form name=alipayment action=alipayapi.asp method=post>"
  116.  
  117. sHtml = sHtml & " <input size=""30"" name=""WIDout_trade_no"" type='hidden' value="""& trade_no &"""/>"
  118. sHtml = sHtml & " <input size=""30"" name=""WIDsubject"" type='hidden' value="""& subject &"""/>"
  119. sHtml = sHtml & " <input size=""30"" name=""WIDtotal_fee"" type='hidden' value="""& total_fee &"""/>"
  120. sHtml = sHtml & " <input size=""30"" name=""WIDbody"" type='hidden' value="""& body &"""/>"
  121. sHtml = sHtml & " <input size=""30"" name=""WIDshow_url"" type='hidden' value="""& show_url &"""/>"
  122.  
  123. sHtml = sHtml & " <style>"
  124. sHtml = sHtml & " ul.bank { padding:0px;margin-left:30px;}"
  125. sHtml = sHtml & " ul.bank li { list-style:none; float:left; padding:5px;}"
  126. sHtml = sHtml & " </style>"
  127. sHtml = sHtml & ""
  128. sHtml = sHtml & " <UL class=""bank fix"">"
  129. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""ICBCB2C"" type=""radio"">   "
  130. sHtml = sHtml & " <IMG alt=""中国工商银行"" align=""middle"" src=""images/bank_gsyh2.gif"">"
  131. sHtml = sHtml & " </LI>"
  132. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""CMB"" type=""radio"">   <IMG alt=""招商银行"""
  133. sHtml = sHtml & " align=""middle"""
  134. sHtml = sHtml & " src=""images/bank_zsyh2.gif""></LI>"
  135. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""CCB"" type=""radio"">   "
  136. sHtml = sHtml & " <IMG alt=""中国建设银行"" align=""middle"""
  137. sHtml = sHtml & " src=""images/bank_jsyh2.gif""></LI>"
  138. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""ABC"" type=""radio"">   "
  139. sHtml = sHtml & " <IMG alt=""中国农业银行"" align=""middle"""
  140. sHtml = sHtml & " src=""images/bank_nyyh2.gif""></LI>"
  141. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""BOCB2C"" type=""radio"">   "
  142. sHtml = sHtml & " <IMG alt=""中国银行"" align=""middle"""
  143. sHtml = sHtml & " src=""images/bank_zgyh2.gif""></LI>"
  144.  
  145. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""COMM-DEBIT"" type=""radio"">   "
  146. sHtml = sHtml & " <IMG alt=""交通银行"" align=""middle"" src=""images/bank_jtyh.gif""></LI>"
  147. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""CIB"" type=""radio"">   "
  148. sHtml = sHtml & " <IMG alt=""兴业银行"" align=""middle"" src=""images/bank_xyyh.gif""></LI>"
  149. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""CMBC"" type=""radio"">   "
  150. sHtml = sHtml & " <IMG alt=""中国民生银行"" align=""middle"" src=""images/bank_msyh2.gif"">"
  151. sHtml = sHtml & " </LI>"
  152. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""GDB"" type=""radio"">   <IMG alt=""广东发展银行"""
  153. sHtml = sHtml & " align=""middle"""
  154. sHtml = sHtml & " src=""images/bank_gdfz.gif""></LI>"
  155. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""SPABANK"" type=""radio"">   "
  156. sHtml = sHtml & " 平安银行"
  157. sHtml = sHtml & " </LI>"
  158. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""SPDB"" type=""radio"">   "
  159. sHtml = sHtml & " <IMG alt=""上海浦东发展银行"" align=""middle"""
  160. sHtml = sHtml & " src=""images/bank_pfyh.gif""></LI>"
  161. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""CITIC"" type=""radio"">   "
  162. sHtml = sHtml & " <IMG alt=""中信银行"" align=""middle"" src=""images/bank_zxyh.gif""></LI>"
  163. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""DEBIT"" type=""radio"">   "
  164. sHtml = sHtml & " <IMG alt=""光大银行"" align=""middle"" src=""images/bank_gdyh.gif""></LI>"
  165. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""FDB"" type=""radio"">   富滇银行</LI>"
  166. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""HZCBB2C"" type=""radio"">   杭州银行</LI>"
  167. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""SHBANK"" type=""radio"">   上海银行</LI>"
  168. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""NBBANK"" type=""radio"">   宁波银行</LI>"
  169. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""POSTGC"" type=""radio"">   中国邮政储蓄银行</LI>"
  170. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""BJBANK"" type=""radio"">   北京银行</LI>"
  171. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""SHRCB"" type=""radio"">   上海农商银行</LI>"
  172. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""WZCBB2C-DEBIT "" type=""radio"">   温州银行</LI>"
  173. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""BJRCB"" type=""radio"">   北京农村商业银行</LI>"
  174. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""abc1003"" type=""radio"">   visa</LI>"
  175. sHtml = sHtml & " <LI><INPUT name=""WIDdefaultbank"" value=""abc1004"" type=""radio"">   master</LI>"
  176. sHtml = sHtml & " </UL>"
  177.  
  178. sHtml = sHtml & " <br><UL class=""bank fix"" style=""clear:both""><button class=""new-btn-login"" type=""submit"" style=""text-align:center;background-color: #ff8c00; color: #FFFFFF; font-weight: bold; "
  179. sHtml = sHtml &"border: medium none; width:82px;height:28px;"">确 认</button></UL>"
  180.  
  181. 'submitbutton控件请不要含有name属性
  182. 'submitbutton默认设置为不显示
  183. 'sHtml = sHtml & "<input type='submit' value='"&sButtonValue&"' style='display:none;'></form>"
  184. sHtml = sHtml & "</form>"
  185.  
  186. BuildRequestFormbank = sHtml
  187. End Function
  188.  
  189. ''
  190. ' 建立请求,以HTML形式构造(默认)
  191. ' param sParaTemp 请求前的參数数组
  192. ' param sMethod 提交方式。两个值可选:post、get
  193. ' param sButtonValue 确认button显示文字
  194. ' return 提交表单HTML文本
  195. Public Function BuildRequestUrl(sParaTemp, sMethod, sButtonValue)
  196. Dim sHtml, nCount
  197. '待请求參数数组
  198. sPara = BuildRequestPara(sParaTemp)
  199.  
  200. sHtml = GATEWAY_NEW
  201.  
  202. nCount = ubound(sPara)
  203. For i = 0 To nCount
  204. '把sPara的数组里的元素格式:变量名=值,切割开来
  205. iPos = Instr(sPara(i),"=") '获得=字符的位置
  206. nLen = Len(sPara(i)) '获得字符串长度
  207. sItemName = left(sPara(i),iPos-1) '获得变量名
  208. sItemValue = right(sPara(i),nLen-iPos)'获得变量的值
  209.  
  210. sHtml = sHtml & "&"& sItemName &"="& sItemValue
  211. next
  212. BuildRequestUrl= sHtml
  213. End Function
  214.  
  215. ''
  216. ' 建立请求。以模拟远程HTTPGET请求方式构造并获取支付宝XML类型处理结果
  217. ' param sParaTemp 请求前的參数数组
  218. ' param sParaNode 要输出的XML节点名
  219. ' return 支付宝返回XML指定节点内容
  220. Public Function BuildRequestHttpXml(sParaTemp, sParaNode)
  221. Dim sUrl, objHttp, objXml, nCount, sParaXml()
  222. nCount = ubound(sParaNode)
  223.  
  224. '待请求參数数组字符串
  225. sRequestData = BuildRequestParaToString(sParaTemp)
  226. '构造请求地址
  227. sUrl = GATEWAY_NEW & sRequestData
  228.  
  229. '获取远程数据
  230. Set objHttp=Server.CreateObject("Microsoft.XMLHTTP")
  231. '假设Microsoft.XMLHTTP不行,那么请替换以下的两行行代码尝试
  232. 'Set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
  233. 'objHttp.setOption 2, 13056
  234. objHttp.open "GET", sUrl, False, "", ""
  235. objHttp.send()
  236. Set objXml=Server.CreateObject("Microsoft.XMLDOM")
  237. objXml.Async=true
  238. objXml.ValidateOnParse=False
  239. objXml.Load(objHttp.ResponseXML)
  240. Set objHttp = Nothing
  241.  
  242. set objXmlData = objXml.getElementsByTagName("alipay").item(0)
  243. If Isnull(objXmlData.selectSingleNode("alipay")) Then
  244. Redim Preserve sParaXml(1)
  245. sParaXml(0) = "错误:非法XML格式数据"
  246. Else
  247. If objXmlData.selectSingleNode("is_success").text = "T" Then
  248. For i = 0 To nCount
  249. Redim Preserve sParaXml(i+1)
  250. sParaXml(i) = objXmlData.selectSingleNode(sParaNode(i)).text
  251. Next
  252. Else
  253. Redim Preserve sParaXml(1)
  254. sParaXml(0) = "错误:"&objXmlData.selectSingleNode("error").text
  255. End If
  256. End If
  257.  
  258. BuildRequestHttpXml = sParaXml
  259. End Function
  260.  
  261. ''
  262. ' 建立请求,以模拟远程HTTPGET请求方式构造并获取支付宝纯文字类型处理结果
  263. ' param sParaTemp 请求前的參数数组
  264. ' return 支付宝处理结果
  265. Public Function BuildRequestHttpWord(sParaTemp)
  266. Dim sUrl, objHttp, sResponseTxt
  267.  
  268. '待请求參数数组字符串
  269. sRequestData = BuildRequestParaToString(sParaTemp)
  270. '构造请求地址
  271. sUrl = GATEWAY_NEW & sRequestData
  272.  
  273. '获取远程数据
  274. Set objHttp=Server.CreateObject("Microsoft.XMLHTTP")
  275. '假设Microsoft.XMLHTTP不行。那么请替换以下的两行行代码尝试
  276. 'Set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
  277. 'objHttp.setOption 2, 13056
  278. objHttp.open "GET", sUrl, False, "", ""
  279. objHttp.send()
  280. sResponseTxt = objHttp.ResponseText
  281. Set objHttp = Nothing
  282.  
  283. BuildRequestHttpWord = sResponseTxt
  284. End Function
  285.  
  286. ''
  287. ' 用于防钓鱼,调用支付宝防钓鱼接口(query_timestamp)来获取时间戳的处理函数
  288. ' 注意:远程解析XML出错,与IISserver配置有关
  289. ' return 时间戳字符串
  290. Public Function Query_timestamp()
  291. Dim sUrl, encrypt_key
  292. sUrl = GATEWAY_NEW &"service=query_timestamp&partner="&partner&"&_input_charset="&input_charset
  293. encrypt_key = ""
  294.  
  295. Dim objHttp, objXml
  296. Set objHttp=Server.CreateObject("Microsoft.XMLHTTP")
  297. '假设Microsoft.XMLHTTP不行,那么请替换以下的两行行代码尝试
  298. 'Set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
  299. 'objHttp.setOption 2, 13056
  300. objHttp.open "GET", sUrl, False, "", ""
  301. objHttp.send()
  302. Set objXml=Server.CreateObject("Microsoft.XMLDOM")
  303. objXml.Async=true
  304. objXml.ValidateOnParse=False
  305. objXml.Load(objHttp.ResponseXML)
  306. Set objHttp = Nothing
  307.  
  308. Set objXmlData = objXml.getElementsByTagName("encrypt_key") '节点的名称
  309. If Isnull(objXml.getElementsByTagName("encrypt_key")) Then
  310. encrypt_key = ""
  311. Else
  312. encrypt_key = objXmlData.item(0).childnodes(0).text
  313. End If
  314.  
  315. Query_timestamp = encrypt_key
  316. End Function
  317.  
  318. End Class
  319.  
  320. %>

如有疑问请加QQ群 348615323 网店系统开发群

asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付的更多相关文章

  1. 无法获取链接服务器 "XXX" 的 OLE DB 访问接口 "SQLNCLI10" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口,但使用该接口时返回了失败代码。

    1. SQL 2000 下载补丁 SQL2KSP4 ,进行安装 2.找到SQL2KSP4\install\instcat.sql 并在sql2000 中打开查询分析器中执行

  2. ASP.NET Core WebApi构建API接口服务实战演练

    一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...

  3. Asp.Net Web Api 与 Andriod 接口对接开发经验,给小伙伴分享一下!

    最近一直急着在负责弄Asp.Net Web Api 与 Andriod 接口开发的对接工作! 刚听说要用Asp.Net Web Api去跟 Andriod 那端做接口对接工作,自己也是第一次接触Web ...

  4. Asp.Net Web Api 与 Andriod 接口对接开发

    Asp.Net Web Api 与 Andriod 接口对接开发经验,给小伙伴分享一下!   最近一直急着在负责弄Asp.Net Web Api 与 Andriod 接口开发的对接工作! 刚听说要用A ...

  5. C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)

    C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...

  6. C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)

    C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...

  7. Windows7下出现“不支持此接口”的解决方案

    今天学校里的辅导员突然找到我说Windows 7下什么文件夹都打不开了,提示“不支持此接口”.怀疑是病毒所致,但运行杀毒软件没有结果.重启也问题依旧. 上网查了之后找到了修复方法: 在命令行中输入fo ...

  8. _ConnectionPtr.CreateInstance(__uuidof(Connection))“不支持此接口”错误解决

    最近在换了win7 64位的系统,今天突然发现以前写的ADO连接数据库的代码编译后在windows2003下会执行到: _ConnectionPtr.CreateInstance(__uuidof(C ...

  9. 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)

    silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方 ...

随机推荐

  1. rxjava 视频

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha Rxjava-基础篇视频教程-Rxjava框架的使用-麦子学院 它的自我介绍,我们可以理 ...

  2. 初雪-Diary?

    who care ------------2018 11 6-------------- 终于AK一场啦 ------------2018 10 18-------------- 嗯....今天T2多 ...

  3. 【贪心】hdu5969 最大的位或

    对于右端点r和左端点l,考虑他们的二进制位从高到低,直到第一位不同的为止. 更高的都取成相同的,更低的都取成1. 比如 101011110001 101011101001 101011111111 # ...

  4. 【高斯消元解xor方程组】BZOJ2466-[中山市选2009]树

    [题目大意] 给出一棵树,初始状态均为0,每反转一个节点的状态,相邻的节点(父亲或儿子)也会反转,问要使状态均为1,至少操作几次? [思路] 一场大暴雨即将来临,白昼恍如黑夜!happy! 和POJ1 ...

  5. git远程仓库创建及权限管理(一)单个项目

    最近接手公司git权限管理,既然负责此事个人觉得应该深入学习下,不仅为当前工作也为进一步发展.网上查找了一番,找到了完整的教程,所以这里不再一步一步描述,具体链接已给出,本文只对操作过程中遇到的问题的 ...

  6. [转] <context-param>与<init-param>的区别与作用

    看到一篇关于web.xm文件中标签的讲解,顺带还阐述了容器的工作流程,因此转载此,以供参考,原文地址:与的区别与作用 <context-param>的作用: web.xml的配置中< ...

  7. 【泡咖啡1】linux下caffe编译以及python环境配置手记

    caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配 ...

  8. Xcode9出现错误safe area layout guide before ios 9 真正解决办法

    网上很多解决办法瞎扯淡,以讹传讹之势愈演愈烈. 正解是选中控制器,右边面板的Builds for 选择iOS9.0 and Later,如下图红框广为流传的错解是不勾选Use Safe Area La ...

  9. linux svn 配置

    #svnadmin create projectname #vi projectname/conf/svnserve.conf anon-access = noneauth-access =write ...

  10. SIP消息类型和消息格式

    转自:http://blog.chinaunix.net/uid-1797566-id-2840904.html sip消息类型和消息格式 SIP是一个基于文本的协议,使用的是UTF-8字符集. SI ...