日期:2014-05-17  浏览次数:21148 次

asp支付宝即时到账支付成功无法写入数据库
├notify_url.asp ┈┈┈┈┈┈┈服务器异步通知页面文件
  │
  ├return_url.asp ┈┈┈┈┈┈┈页面跳转同步通知文件

1.支付成功后这个页面notify_url.asp会自动提交信息给支付宝确认是否支付成功后然后把相应的数据写如数据库,,但我很烦恼,,支付成功就是无法把相关的数据写入数据库,,我都无法知道是否有没有调用过这个页面。
<!--#include file="alipay_config.asp"-->
<!--#include file="class/alipay_notify.asp"-->

<%
'计算得出通知验证结果
verify_result = notify_verify()

if verify_result then '验证成功
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'请在这里加上商户的业务逻辑程序代码

'——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
  '获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
subject = request.Form("subject") '获商品名称
trade_no = request.Form("trade_no") '支付宝交易号
  out_trade_no = request.Form("out_trade_no") '获取订单号
  total_fee = request.Form("total_fee") '获取总金额
body = request.Form("body") '获取商品描述


if request.Form("trade_status") = "TRADE_FINISHED" or request.Form("trade_status") = "TRADE_SUCCESS" then
'判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
'如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
'如果有做过处理,不执行商户的业务程序


set rs=server.CreateObject("adodb.recordset")
rs.open"dingdan",conn,2,3
rs.addnew
rs("dingdanhao")=trade_no
rs("shanjiahao")=out_trade_no
rs("leixing")=mainname
rs("title")=subject
rs("price")=total_fee
rs("body")=pay_qq
rs("ip")=Request.ServerVariables("Remote_Addr")
rs("chuli")=0
rs("adddate")=now()
rs.update

rs.close
set rs=nothing
conn.close
set conn=nothing 
response.Write "success" '请不要修改或删除
log_result ("测试成功!")
'调试用,写文本函数记录程序运行情况是否正常
  'log_result("这里写入想要调试的代码变量值,或其他运行的结果记录")

end if
'——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
else '验证失败
  response.Write "fail"
'调试用,写文本函数记录程序运行情况是否正常
'log_result ("这里写入想要调试的代码变量值,或其他运行的结果记录")
log_result ("这里写入想要调试的代码变量值,或其他运行的结果记录")
end if
%>

2.return_url.asp这个页面是在支付成功后跳转要通知的页面,,这个页面基本正常的,,而且把上面那段SQl语句放在这个页面可以完全写入数据库的。但在这个页面会有风险,,因为一般用户在支付成功后马上关掉了页面,,所以来不及跳转return_url.asp这个页面,,所以语句无法执行。
<!--#include file="alipay_config.asp"-->
<!--#include file="class/alipay_notify.asp"-->

<%
'计算得出通知验证结果
verify_result = return_verify()

if verify_result then '验证成功
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'请在这里加上商户的业务逻辑程序代码

'——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
  '获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
subject = Request.QueryString("subject") '获商品名称
  out_trade_no = request.QueryString("out_trade_no") '获取订单号
  total_fee = request.QueryString("total_fee") '获取总金额

if request.QueryString("trade_status") = "TRADE_FINISHED" or request.QueryString("trade_status") = "TRADE_SUCCESS" then
'判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
'如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
session("pay_dingdan")=out_trade_no
session("pay_name