<!--#include file="../../inc/payconn.asp"-->
<!--#include file="md5.asp"-->
<!--#include file="../payss.asp"-->
<%
Call ConnectionDatabase()
ON ERROR RESUME NEXT
SQL = "Select * From [L_pay] Where ptype='46ka'"
Set crs = Server.CreateObject("ADODB.Recordset")
crs.Open SQL,Conn,1,1
if crs.eof Then
 Response.Write "支付未设置！"
 Response.End()
 else
  	customerid		= crs("sId")                                       ' 这里替换为您的实际商户号
	userkey	= crs("sKey")				' 商户密钥,测试时即为商户号,正式上线后需修改
End If
%>
<%
'商户在46ka支付网关上的订单状态，0为失败，1为成功
result=Trim(Request("result"))

'商户在46ka支付网关上的ID
user_id=Trim(Request("user_id"))

'46ka支付订单流水号
sp_linkid=Trim(Request("sp_linkid"))

'商户提交的订单流水号
sp_billno=Trim(Request("sp_billno"))

'商户订单金额，注意可能与商户时提交不一致，46ka支付结果是以卡的面值来结算的
total_fee=Trim(Request("total_fee"))

'46ka支付通道编码
sp_id=Trim(Request("sp_id"))

'商户自定义原样返回
sp_extdata=Trim(Request("sp_extdata"))

'46ka支付提交过来的MD5签名
sign=Trim(Request("sign"))

'46ka支付提交过来的系统备注
des=Request("des")

if des="" then des="支付失败"

'商户在46ka支付网关上的交易密钥，登录46ka支付商户后台可自行查询修改
key= userkey

'验证MD5签名
sign_text = "user_id=" & user_id & "&sp_id=" & sp_id &"&sp_billno=" & sp_billno & "&sp_key=" & userkey & "&total_fee=" & total_fee & "&sp_extdata=" & sp_extdata
signtmp = UCase(MD5(sign_text)) ' 转换为大写






		
			SQL = "select * from mobile1 Where num='"&sp_billno&"'"
			Set Res = Server.CreateObject("ADODB.Recordset")
			Res.Open SQL,Conn,1,3
			
'MD5签名正确
If sign=signtmp Then
			
	'检测到状态为成功
	If result=1 Then
		'商户业务数据成功处理
		    if not res.bof or not res.eof then
			res("stat")=1
			res("des")="支付成功"  '系统备注
			res("Okprice")=total_fee  '成功金额		
			res.update
			end if

					Dim myPay
					Set myPay = New PayResult
					myPay.TruePrice = total_fee
					myPay.PayOK(sp_billno)
	Else
		'商户业务数据失败处理
		    if not res.bof or not res.eof then
			res("stat")=2  '2表示失败
			res("des")=des  '系统备注			
			res.update
			end if
	End If
	'处理完后返回接收到标识为ok
	'只要商户接到通知，不管订单状态如何
	'都只需要返回接收到标识为ok
	Response.Write("ok")
Else
		    if not res.bof or not res.eof then
			res("stat")=2  '2表示失败			
			res.update
			end if
	Response.Write(signtmp)
End If

%>