asp微信公众号支付回调参数入库demo详细示例

最近接的一个小项目,客户要求用asp写,微信公众号支付完成后回调入库,晚上加了会班,帮他写了一段asp微信公众号支付回调参数入库demo详细示例

sub AddData()
	'当本接口网络出现问题或无法返回success字符时,微信将会在30分钟内重复8次后台通知,入库时需要判断是否已经入库,避免重复数据入库
'看看记录存在了吗
dim Rs,SQL,rsf'必须声明,微信支付环境要求很高
set rsf=conn.execute ("select * from Order_Info where transaction_id='"&transaction_id&"'")
	if not rsf.eof then'这里查询的transaction_id是指微信支付流水单,存在了什么也不做
	else'说明不存在下面开始修改这条信息,把微信返回的支付信息入库
		SQL = "select * from Order_Info where ddh_='"&out_trade_no&"'"'out_trade_no是支付的订单号,在jsapi.asp中已经入库保存到ddh_里面了
		Set Rs = Server.CreateObject("Adodb.RecordSet")
		Rs.Open SQL,Conn,1,3
			Rs("openid")			= openid
			Rs("is_subscribe")		= is_subscribe
			Rs("trade_type")		= trade_type
			Rs("bank_type")			= bank_type
			Rs("total_fee")			= total_fee
			Rs("transaction_id")	= transaction_id
			Rs("out_trade_no")		= out_trade_no
			Rs("time_end")			= time_end
			Rs("AddTime")    		= Now()
			Rs("attach")			= attach
			Rs("zfok")			= "支付成功"
			Rs("Info")    			= request.QueryString
		Rs.Update
		Response.Write returnXml	'返回SUCCESS给微信
		Rs.Close
		Set Rs = Nothing
		'下面打开这个流水单,取得这条流水里的会员id
		'===============================下面在往会员表中写入支付成功的信息,其实这一步可以省掉的=======================
		dim SQLyy,Rsyy,hyidid,ipay,dateend,upper,ceo,yj,ej
		ipay = 1
		dateend = date()+366
		yj = Cint(Conn.execute("select yj from [about] where id =1")(0))'取到一级拥级多少钱
		ej = Cint(Conn.execute("select ej from [about] where id =1")(0))'取到二级拥级多少钱
		'newddh = int(attach)'取到这个会员支付的流水id号
		hyidid = Conn.execute("select hyid_ from [Order_Info] where ddh_='"&out_trade_no&"'")(0)'从流水明细中取得支付者的会员id号
		Conn.ExeCute("update [member] set imoney=imoney+"&total_fee&",ipay="&ipay&",wx_text='"&attach&"',dateend='"&dateend&"' where Id="&hyidid&"")'修改会员金额,是否支付,产品名字,到期时间
		'下面开始查询他的上级,如果有则写入佣金
		upper = Cint(Conn.execute("select upper from [member] where id ="&hyidid&"")(0))'取到他的上级ID
		If Cint(upper) <> 0 Then
			Conn.ExeCute("update [member] set yongjin=yongjin+"&yj&" where Id="&upper&"")'说明他是有上级的,给他的上级加点钱
			Conn.Execute("Insert Into [upper_ls](hyid,qian,[upper]) values("&upper&",'"&yj&"',"&hyidid&")")'佣金流水明细
		end if
		'下面开始查询他的上上级,如果有则写入佣金
		ceo = Cint(Conn.execute("select [ceo] from [member] where id ="&hyidid&"")(0))'取到他的上上级ID
		If Cint(ceo) <> 0 Then
			Conn.ExeCute("update [member] set yongjin=yongjin+"&ej&" where Id="&ceo&"")'说明他是有上上级的,给他的上上级加点钱
			Conn.Execute("Insert Into [upper_ls](hyid,jb,qian,[upper]) values("&ceo&",1,'"&ej&"',"&hyidid&")")'佣金流水明细
		end if
		'写入结束=============================================================
	end if
rsf.close
set rsf=nothing
'检查是不是存在end

end Sub

猜你喜欢

转载自blog.csdn.net/tocnc/article/details/89176770