| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:请高手指教一下
只看楼主 加入收藏
yoyo8
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-12-22
收藏
 问题点数:0 回复次数:1 
请高手指教一下
这个是正确的
<!--  
 * ====================================================================
 *
 *                 Receive.asp 由网银在线技术支持提供
 *
 *     本页面为支付完成后获取返回的参数及处理......
 *
 *
 * ====================================================================
-->
<!--#include file="MD5.asp"-->
<!--#include file="conn.asp"-->
<!--#include file="inc/base64.asp"-->
<link rel="stylesheet" href="style.css" type="text/css">
<%   
'****************************************    ' MD5密钥要跟订单提交页相同,如Send.asp里的 key = "test" ,修改""号内 test 为您的密钥
                                            ' 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:[url]https://merchant3.[/url]
    key = "123456789"                            ' 登陆后在上面的导航栏里可能找到“资料管理”,在资料管理的二级导航栏里有“MD5密钥设置”
                                            ' 建议您设置一个16位以上的密钥或更高,密钥最多64位,但设置16位已经足够了
'****************************************

' 取得返回参数值
    v_oid=request("v_oid")                               ' 商户发送的v_oid定单编号
    v_pmode=request("v_pmode")                           ' 支付方式(字符串)
    v_pstatus=request("v_pstatus")                       ' 支付状态 20(支付成功);30(支付失败)
    v_pstring=request("v_pstring")                       ' 支付结果信息 支付完成(当v_pstatus=20时);失败原因(当v_pstatus=30时);
    v_amount=request("v_amount")                         ' 订单实际支付金额
    v_moneytype=request("v_moneytype")                   ' 订单实际支付币种
    remark1=request("remark1")                           ' 备注字段1
    remark2=request("remark2")                           ' 备注字段2
    v_md5str=request("v_md5str")                         ' 网银在线拼凑的Md5校验串
Merchant = "10787"
merpassword = "123456789"    '填写你的密钥
amount=Trim(v_amount)                
billno=Trim(v_oid)                
signature = v_md5str

if request("v_md5str")="" then
    response.Write("v_md5str:空值")
    response.end
end if

if v_pstatus=20 then

   succ = "Y"
else
   succ = "N"
   response.write"支付不成功"
   response.end
end if

'md5校验

    text = v_oid&v_pstatus&v_amount&v_moneytype&key

    md5text = Ucase(trim(md5(text)))    '商户拼凑的Md5校验串

    if md5text<>v_md5str then    
      response.write"您提交的数据存在问题,请与管理员联系"    
      result=1
    else
      result=0
    end if
ontent=billno&amount&succ
money=csng(amount)
if money<=0 then
   response.write "价格不可能小于等于0的,不予受理!"
   response.end
end if
%>
<html>
<body>

<div align="center">
<table border="1" width="500" cellspacing="0" cellpadding="0" bordercolorlight="#C0C0C0" bordercolordark="#FFFFFF" >
<tr><td><a href="index.asp"><img border="0" src="images/top.gif" width="500" height="79"></a></td></tr>
<tr><td>
<%if signature<>"" and  UCase(succ)="Y"  and  result=0 then
set rs=server.createobject("adodb.recordset")
sql="select top 1 * from sys"
rs.open sql,conn,3,3
sys_mailserver=rs("sys_mailserver")
sys_mailuser=rs("sys_mailuser")
sys_mailpass=rs("sys_mailpass")
sys_mailtitle=rs("sys_mailtitle")
sys_name=rs("sys_name")
sys_qq=rs("sys_qq")
sys_tel=rs("sys_tel")
sys_mail=rs("sys_mail")
rs.close
sql="select * from receive where MerchantOrderNumber='"&billno&"'"
        rs.open sql,conn,3,3
        if not rs.eof then
           response.write "此订单号已发卡,不予受理!"
           response.end
        else  
           rs.addnew
           rs("MerchantOrderNumber")=billno
'          rs("WestPayOrderNumber")=WestPayOrderNumber
           rs("PaidAmount")=amount
           rs("sub_date")=now()
           rs.update
        end if
        rs.close
        sql="select * from sub where sub_number='"&billno&"'and sub_payok=false and sub_check=false"
        rs.open sql,conn,3,3
        if rs.eof then
           response.write("<script>alert('订单号不对或重复提交!请检查,谢谢合作!');window.location=('index.asp')</script>")
           response.End
        end if
        if csng(amount)<>csng(rs("sub_totalcash")) then
           response.write("<script>alert('您订购的卡费与实际所付的不一样,请与管理员联系!');window.location=('index.asp')</script>")
           response.End
        end if
       %>
      产品名称:<%=rs("hw_name")%>
     <div align="center">
     <table border="1" width="500" cellspacing="0" cellpadding="0" bordercolorlight="#C0C0C0" bordercolordark="#FFFFFF">
     <%rs("sub_payok")=true
        rs("sub_adds")="1"
        rs.update
        if rs("sub_cz")="1" then%>
           您的款已收到,工作人员将尽快给您充值,您也可以现在通知客服!电话:<%=sys_tel%>  QQ:<%=sys_qq%> <br>
       <%else
           set rs1=server.createobject("adodb.recordset")
           sql1="select top "&rs("hw_count")&" * from tingcardnum where hw_id="&rs("hw_id")& " and hw_ok=true order by id"
           rs1.open sql1,conn,3,3
           if rs1.eof then%>
             <div align="center"><span style="font-size: 9pt">卡已被购买完,请通知管理员!请与管理员联系!电话:<%=sys_tel%>  QQ:<%=sys_qq%></span></div>
             <% n2=rs("hw_count")
                rs("sub_yuka")=n2
                rs.update
              %>
            <%else%><p><span style="font-size: 9pt">您所订购的卡号如下:<br>
                       </span><br>
                <%
                 n1=0
                 content="您好!感谢您购买我们的产品!我们与《网银在线》支付平台联合,使用目前最新的银行B2C在线支付系统,与中国工商银行,招商银行,中国建设银行,民生银行等金融机构达成电子商务协议,其他银行正在洽谈中。本站集支付的合法性,交易的便捷性,买卖双方的及时性,网站管理的严格性,让众多玩家真正体会到交易的便捷性,安全性!可以大量的节约买家的汇款时间以及银行汇款手续费等。从而实现了游戏虚拟物品交易的电子商务化!您汇款,我付费! 本站提倡诚信第一,在虚拟宝物得到不断的重视的过程中,愿广大玩家自觉的营造一个良好的交易氛围。 在网络游戏不断成熟的今天,也希望青少年不要荒废学业,事业沉迷于网络游戏。 最后,在此衷心感谢“网银在线”对我站技术上的支持。"&CHR(10)&CHR(10)
                 content=content+"您购买的是:"&CHR(10)
                 content=content+"购买时间:"&cstr(rs("sub_date"))&CHR(10)
                 content=content+"订 单 号 :"&rs("sub_number")&CHR(10)
                 content=content+"购买数量 :"&rs("hw_count")&CHR(10)&CHR(10)&"------------------------------------------"&CHR(10)
                 do while not rs1.eof
                    content=content&"卡号:"&rs1("hw_number")& CHR(10)&"密码:"&strAnsi2Unicode(Base64decode(strUnicode2Ansi(rs1("hw_pass"))))& CHR(10)
                    rs1("hw_ok")=false
                    rs1("sub_number")=rs("sub_number")
                    rs1("sub_tel")=rs("sub_tel")
                    rs1("number_ip")=request.servervariables("remote_addr")
                    rs1.update
                %>
                   <tr>
                       <td width="58" style="padding: 5px" align="center">卡号:</td>
                       <td width="111" style="padding: 5px" align="center"><%=rs1("hw_number")%> </td>
                       <td width="58" style="padding: 5px" align="center">密码:</td>
                       <td width="111" style="padding: 5px" align="center"><%=strAnsi2Unicode(Base64decode(strUnicode2Ansi(rs1("hw_pass"))))%></td>
                   </tr>     
                <%
                   n1=n1+1
                   rs1.movenext
                   loop
                   content=content&CHR(10)&"------------------------------------------"&CHR(10)&CHR(10)
                   content=content+"再次感谢您购买我们的产品!"&CHR(10)
                   content=content+"此卡配送信息:"&CHR(10)
                   content=content+"配送区域:全世界。"&CHR(10)
                   content=content+"配送方式:通过128位加密方式将商品信息(卡号密码或充值信息)实时显示在用户浏览器的页面上,同时发送到用户的邮箱中。"&CHR(10)
                   content=content+"配送时间:实时,无需任何等待时间。"&CHR(10)&CHR(10)
                   content=content+"2、如果您在购买中有问题请和我们联系:"&CHR(10)
                   content=content+"电话:"&sys_tel&"QQ:"&sys_qq&CHR(10)
                   set rs2=server.createobject("adodb.recordset")
                   sql2="select * from hw where hw_name='"&rs("hw_name")& "'"
                   rs2.open sql2,conn,3,3
                   rs2("hw_buys")=rs2("hw_buys")+rs("hw_count")
                   rs2.update
                   rs2.close:set rs2=nothing
                   if n1<cint(rs("hw_count")) then
                      n2=cint(rs("hw_count"))-n1%>
                      <div align="center">还欠您<%=n2%>张<%=rs("hw_name")%>,请与管理员联系!电话:<%=sys_tel%>  QQ:<%=sys_qq%></div>
                      <% rs("sub_yuka")=n2
                         rs.update
                   else
                        rs("sub_yuka")=0
                        rs.update
                   end if
        
set jmail=server.CreateObject ("jmail.message")
jmail.Silent=true
jmail.Charset="gb2312"
jmail.logging=true
jmail.from=sys_mailuser
jmail.FromName=sys_mailuser
JMail.Subject =sys_mailtitle
jmail.MailServerUserName =sys_mailuser
jmail.MailServerPassWord =sys_mailpass
emailto = rs("sub_mail")
JMail.AddRecipient emailto
JMail.Body = content
jmail.Send(sys_mailserver)
set JMail = nothing        

end if%><% end if %></table></div>
<%end if%>
<p align="center"><a href="INDEX.ASP">
    <img border="0" src="images/home.gif" width="200" height="44"></a></td></tr></table></body></html>
搜索更多相关主题的帖子: 指教 
2007-12-22 18:59
yoyo8
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-12-22
收藏
得分:0 
<!-- #include file="asp_md5.asp" -->
<!-- #include file="pub_inc.asp" -->
<% Response.Buffer = true %>
<meta name="TENCENT_ONELINE_PAYMENT" content="China TENCENT">
<html>
<%
'取返回参数
cmdno            = Request("cmdno")
pay_result    = Request("pay_result")
pay_info        = Request("pay_info")
bill_date        = Request("date")
bargainor_id    = Request("bargainor_id")
transaction_id    = Request("transaction_id")
sp_billno        = Request("sp_billno")
total_fee        = Request("total_fee")
fee_type        = Request("fee_type")
attach            = Request("attach")
md5_sign        = Request("sign")


'返回值定义
Private Const retOK = 0                    ' 成功                    
Private Const invalidSpid = 1            ' 商户号错误
Private Const invalidSign = 2            ' 签名错误
Private Const tenpayErr    = 3                ' 财付通返回支付失败

'验签函数
Function verifyMd5Sign

    origText = "cmdno=" & cmdno & "&pay_result=" & pay_result &_
               "&date=" & bill_date & "&transaction_id=" & transaction_id &_
               "&sp_billno=" & sp_billno & "&total_fee=" & total_fee &_
               "&fee_type=" & fee_type & "&attach=" & attach &_
               "&key=" & sp_key
    
    localSignText = UCase(ASP_MD5(origText)) ' 转换为大写
    verifyMd5Sign = (localSignText = md5_sign)
    
End Function

'返回值
Dim retValue
retValue = retOK

'判断商户号
If bargainor_id <> spid Then
    retValue = invalidSpid
Else
' 验签
    If verifyMd5Sign <> True Then
        retValue = invalidSign
    Else
' 检查财付通返回值
        If pay_result <> 0 Then
            retValue = tenpayErr
        End If
    End If
End If

'在这里处理业务逻辑

'输出信息
Dim pay_msg
Select Case retValue
    Case retOK            pay_msg = "支付成功!"
    Case invalidSpid    pay_msg = "错误的商户号!"    
    Case invalidSign    pay_msg = "验证MD5签名失败!"
    Case Else            pay_msg = "支付失败!"
End Select

Response.write "<script language=javascript>"
Response.write "window.location.href='http://"&my_url&"/onlinepaylist.asp';"  '替换成商户网站相应页面地址
Response.write "</script>"
%>
</html>
怎么把这个改成和上面的一样  这个是在线支付自动取卡  系统
我试了好几次不好用


[[italic] 本帖最后由 yoyo8 于 2007-12-22 19:02 编辑 [/italic]]
2007-12-22 19:01
快速回复:请高手指教一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049443 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved