RSS
热门关键字:  虚拟主机技术  vps团购  discuz架构  虚拟主机团购  curl
当前位置 :| 团购首页>网站编程>ASP>

asp各种网上支付接口函数

来源: 作者: 时间:2008-07-28 Tag:asp   点击:

<%
 
dim Tmp1,pay_number,pay_signa,pay_back,pay_currency,pay_url,v_moneytype,pay_alipay_number,pay_alipay_signa,pay_alipay_currency,pay_alipay_url
Tmp1 = Split(YSvoid.Web_Payment,"|")
 pay_number=Tmp1(0)     '网银商户代号
 pay_signa=Tmp1(1)     '网银商户支付私钥, 要与网银管理中心里设置的值相同
 pay_currency=Tmp1(2)    '网银货币种类(该值请勿乱改动)
 pay_url=Tmp1(3)           '网银支付网关入口(请不要随意更改)
 pay_back=Tmp1(4)     '网银支付成功后默认的返回(URL)地址
 pay_alipay_number=Tmp1(5)   '支付宝商户代号
 pay_alipay_signa=Tmp1(6)   '支付宝商户支付私钥, 要与网银管理中心里设置的值相同
 pay_alipay_currency=Tmp1(7)  '支付宝货币种类(该值请勿乱改动)
 pay_alipay_url=Tmp1(8)       '支付宝支付网关入口(请不要随意更改)


function fm_price(pvar,pt)
  if not isnumeric(pvar) then
    fm_price=0
    exit function
  end if
  dim nvar,ni
  nvar=formatnumber(pvar)
  nvar=replace(nvar,",","")
  if left(nvar,1)="." then
    nvar="0"&nvar
  end if
  if pt=1 then
    fm_price=nvar
    exit function
  end if
  for ni=0 to 1
    if cstr(right(nvar,1))="0" then
      nvar=left(nvar,len(nvar)-1)
    else
      ni=1
    end if
  next
  if cstr(right(nvar,1))="." then
    nvar=left(nvar,len(nvar)-1)
  end if
  if not isnumeric(nvar) then nvar=0
  fm_price=csng(nvar)
end function

function pay_encrypt(pvar)
  pay_encrypt=YSvoid_md5(pvar,"long")
end function

class YSvoid_pay
  public back_url,pay_sort,pay_ordernum,pay_amount,pay_username,pay_address,pay_post,pay_phone,pay_email,pay_carry,pay_remark,frm_target,frm_js,val_num

  private sub class_initialize()
    back_url=""
    frm_target=true
    frm_js=true
    val_num=0
  end sub

  public function sort_type(ts)
    dim temp1
    ts=replace(ts,"'","")
    ts=replace(ts,"""","")
    ts=replace(ts,"*","")
    ts=replace(ts,"#","")
    ts=replace(ts,"$","")
    ts=replace(ts,"%","")
    ts=replace(ts," ","")
    select case ts
    case "emoney"
      temp1=ts
    case "shop"
      temp1=ts
    case else
      temp1=ts
    end select
    sort_type=temp1
  end function

public sub pay_return()
    dim re_safety,var_tmp,v_pstatus,v_moneytype,v_pmode
    pay_ordernum=trim(request.form("v_oid"))  '定单号
    pay_amount=trim(request.form("v_amount"))  '订单实际支付金额
    re_safety=request.form("v_md5str")  'Md5校验串
    v_pstatus=trim(request.form("v_pstatus"))  '支付状态
    pay_currency=trim(request.form("v_moneytype"))   '货币种类
    if request.form("v_md5str")="" then
      val_num=1
      exit sub
    end if

var_tmp=Ucase(pay_encrypt(cstr(pay_ordernum)&cstr(v_pstatus)&cstr(pay_amount)&cstr(pay_currency)&cstr(pay_signa)))   '顺序为定单号, 支付状态, 订单实际支付金额, 货币种类, 私匙

    if re_safety<>var_tmp then
      val_num=2
      exit sub
    end if
  end sub

  public sub pay_frm(ftype)
    dim temp1
    pay_amount=fm_price(pay_amount,1)
    dim var_tmp,pay_safety
    pay_sort=sort_type(pay_sort)
    var_tmp=cstr(fm_price(pay_amount,1))&cstr(pay_currency)&cstr(pay_ordernum)&cstr(pay_number)&cstr(back_url)&cstr(pay_signa)
    pay_safety=Ucase(pay_encrypt(var_tmp))
    if back_url="" then back_url=pay_back
   temp1=vbcrlf&"<form name=YSvoid_pay_frm action='"&pay_url&"' method=post"
    if frm_target then temp1=temp1&" target=pay_win"
    temp1=temp1&">" & _
   vbcrlf&"<input type=hidden name=v_mid value='"&pay_number&"'>" & _
   vbcrlf&"<input type=hidden name=v_moneytype value='"&pay_currency&"'>" & _
   vbcrlf&"<input type=hidden name=v_oid value='"&pay_ordernum&"'>" & _
   vbcrlf&"<input type=hidden name=v_amount value='"&pay_amount&"'>" & _
   vbcrlf&"<input type=hidden name=v_rcvname value='"&pay_username&"'>" & _
   vbcrlf&"<input type=hidden name=v_rcvaddr value='"&pay_address&"'>" & _
   vbcrlf&"<input type=hidden name=v_rcvpost value='"&pay_post&"'>" & _
   vbcrlf&"<input type=hidden name=v_rcvtel value='"&pay_phone&"'>" & _
   vbcrlf&"<input type=hidden name=v_orderemail value='"&pay_email&"'>" & _
   vbcrlf&"<input type=hidden name=remark2 value='"&pay_carry&"'>" & _
   vbcrlf&"<input type=hidden name=remark1 value='"&pay_remark&"'>" & _
   vbcrlf&"<input type=hidden name=v_url value='"&back_url&"'>" & _
   vbcrlf&"<input type=hidden name=v_md5info value='"&pay_safety&"'>" & _
   vbcrlf&"</form>"
    if frm_js then
      temp1=temp1&vbcrlf&"<script language=javascript>" & _
     vbcrlf&"<!--"
    end if
    temp1=temp1&vbcrlf&"function YSvoid_online_pay()" & _
   vbcrlf&"{"
    if frm_target then temp1=temp1&vbcrlf&"  window.open('about:blank','pay_win');"
    temp1=temp1&vbcrlf&"  document.YSvoid_pay_frm.submit();" & _
   vbcrlf&"}"
    if ftype=1 then temp1=temp1&vbcrlf&"YSvoid_online_pay();"
    if frm_js then
      temp1=temp1&vbcrlf&"-->" & _
     vbcrlf&"</script>"
    end if
    response.write temp1
  end sub
end class

class YSvoid_alipay

 Public sellerEmail,securityCode,Cmd,frm_target,frm_js,ordinaryFee,expressFee,md5Obj,alipayNotifyURL
 
 Public REQUEST_PAYTO_URL  'payto连接地址
 Public DEFAULT_ENCODING   '默认编码

 '构造函数,初始化各必要变量
 Public Sub myAlipay_Initialize()
  sellerEmail   = pay_alipay_number '您的支付宝认证Email
  securityCode  = pay_alipay_signa  '安全校验码
  Cmd     = pay_alipay_currency '命令编号
  ordinaryFee   = "12.00" '平邮费用
  expressFee   = "20.00" '快递费用
  REQUEST_PAYTO_URL = pay_alipay_url
  alipayNotifyURL  = "http://notify.alipay.com/trade/notify_query.do?"
  DEFAULT_ENCODING = "GBK"
     frm_target=true
     frm_js=true
  Set md5Obj     = New MD5
  md5Obj.MD5_Initialize()
 End Sub

 
 '生成交易Form
 Public sub generateShopPaytoURL(s1,s2,s3,s4,s5,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s18,ftype)
     dim temp1,md5Str
     md5Str= "cmd"   & s3 & _
       "subject"  & s5 & _
       "body"   & s7 & _
       "order_no"  & s4 & _
       "price"   & s8 & _
       "type"   & s10 & _
       "number"  & s9 & _
       "transport"  & s13 & _
       "ordinary_fee" & s11 & _
       "express_fee" & s12 & _
       "seller"        &s1 & _
       "buyer"   & s16 & _
       "buyer_name" & s15 & _
       "buyer_address" & s17 & _
       "buyer_zipcode" & s18 & _
       s2
     temp1=vbcrlf&"<form name=YSvoid_pay_frm action='"&REQUEST_PAYTO_URL & s1&"' method=get"
     if frm_target then temp1=temp1&" target=pay_win"
     temp1=temp1&">" & _
    vbcrlf&"<input type=hidden name=cmd value='"&s3&"'>" & _
    vbcrlf&"<input type=hidden name=subject value='"&s5&"'>" & _
    vbcrlf&"<input type=hidden name=body value='"&s7&"'>" & _
    vbcrlf&"<input type=hidden name=order_no value='"&s4&"'>" & _
    vbcrlf&"<input type=hidden name=price value='"&s8&"'>" & _
    vbcrlf&"<input type=hidden name=type value='"&s10&"'>" & _
    vbcrlf&"<input type=hidden name=number value='"&s9&"'>" & _
    vbcrlf&"<input type=hidden name=transport value='"&s13&"'>" & _
    vbcrlf&"<input type=hidden name=ordinary_fee value='"&s11&"'>" & _
    vbcrlf&"<input type=hidden name=express_fee value='"&s12&"'>" & _
    vbcrlf&"<input type=hidden name=buyer value='"&s16&"'>" & _
    vbcrlf&"<input type=hidden name=buyer_name value='"&s15&"'>" & _
    vbcrlf&"<input type=hidden name=buyer_address value='"&s17&"'>" & _
    vbcrlf&"<input type=hidden name=buyer_zipcode value='"&s18&"'>" & _
    vbcrlf&"<input type=hidden name=ac value='"&generatePaytoMD5(md5Str,0)&"'>" & _
    vbcrlf&"</form>"
     if frm_js then
       temp1=temp1&vbcrlf&"<script language=javascript>" & _
      vbcrlf&"<!--"
     end if
     temp1=temp1&vbcrlf&"function YSvoid_online_alipay()" & _
    vbcrlf&"{"
     if frm_target then temp1=temp1&vbcrlf&"  window.open('about:blank','pay_win');"
     temp1=temp1&vbcrlf&"  document.YSvoid_pay_frm.submit();" & _
    vbcrlf&"}"
     if ftype=1 then temp1=temp1&vbcrlf&"YSvoid_online_alipay();"
     if frm_js then
       temp1=temp1&vbcrlf&"-->" & _
      vbcrlf&"</script>"
     end if
     response.write temp1
 End sub
 

 '取得payto交易的MD5加密串
 Public Function generatePaytoMD5(strTemp,ty)
  generatePaytoMD5 = md5Obj.md5(strTemp)
  if ty=1 then set md5Obj=nothing
 End Function
 
 '检查返回信息是否来自支付宝,如果 Cstr(ReturnState) 不是 "true" 和 "false" ,就是错误信息
 Public Function ReturnState(msg_id,order_no)
  dim Retrieval,strURL
  Set Retrieval  = Server.CreateObject("Microsoft.XMLHTTP")
       
        strURL = "http://notify.alipay.com/trade/notify_query.do?msg_id=" & msg_id
        strURL = strURL & "&email=" & sellerEmail & "&order_no=" & order_no
       
        Retrieval.open "GET", strURL, False, "", ""
        Retrieval.send()
       
        ReturnState = Retrieval.ResponseText
  Set Retrieval = Nothing
     End Function

  '私有接口,取得请求后返回的html
 Public Function getHTTPURL(strPath)
        Dim strTemp
  strTemp   = GetBody(strPath)
        getHTTPURL  = BytesToBstr(strTemp,"GB2312")
 End function

 '私有接口,取得请求后返回的html Stream
 Private Function GetBody(strURL)
  On Error Resume Next
        Set Retrieval  = CreateObject("Microsoft.XMLHTTP")
        With Retrieval
   .Open "GET", strURL, False, "", ""
   .Send
   GetBody = .ResponseBody
        End With
        Set Retrieval  = Nothing
 End Function

 '私有接口,转换Stream-->String
 Private Function BytesToBstr(strBody,strCharset)
        Dim streamObj
        set streamObj  = Server.CreateObject("ADODB.Stream")
        streamObj.Type  = 1
        streamObj.Mode  = 3
        streamObj.Open
        streamObj.Write strBody
        streamObj.Position = 0
        streamObj.Type  = 2
        streamObj.Charset = strCharset
        BytesToBstr   = streamObj.ReadText
        streamObj.Close
        Set streamObj  = Nothing
 End Function
end class

%>


 


    由于各种原因,我们无法获知[asp各种网上支付接口函数]原创作者,如侵犯了您的版权,请您及时联系我们!
上一篇:asp保存远程图片和文件到本地
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册