paypal 即时付款通知的问题 大家帮忙看下 急急急、、、
时间:2011-07-15
来源:互联网
<%
Dim Item_name, Item_number, Payment_status, Payment_amount,Point
Dim Txn_id, Receiver_email, Payer_email
Dim objHttp, str
'从PayPal出读取POST信息同时添加变量'cmd'
str = Request.Form & "&cmd=_notify-validate"
'建议在此将接受到的信息记录到日志文件中以确认是否收到IPN信息
' 将信息POST回给PayPal进行验证
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
' set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
' set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
'在Sandbox情况下,设置:
' objHttp.open "POST", " https://www.sandbox.paypal.com/cgi-bin/webscr", false
objHttp.open "POST", " https://www.paypal.com/cgi-bin/webscr", false
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHttp.Send str
'将POST变量分配给本地变量
'该付款明细所有变量可参考:
' https://www.paypal.com/IntegrationCenter/ic_ipn-pdt-variable-reference.html
Item_name = Request.Form("item_name")
Item_number = Request.Form("item_number")
Payment_status = Request.Form("payment_status")
Payment_amount = Request.Form("mc_gross")
Payment_currency = Request.Form("mc_currency")
Txn_id = Request.Form("txn_id")
Receiver_email = Request.Form("receiver_email")
Payer_email = Request.Form("payer_email")
Point=0.0625*Payment_amount
'…
'检查通知是否合法
if (objHttp.status <> 200 ) then
'HTTP错误
elseif (objHttp.responseText = "VERIFIED") then
'检查付款状态是否完成("Completed")
'检查txn_id 是否已经处理过
'检查receiver_email是否是您的PayPal账户中的EMAIL地址
'检查付款金额和货币单位是否正确
'处理这次付款,包括写数据库
if Payment_status="Completed" then
opendb()
set rs=server.CreateObject("Adodb.recordset")
rs=conn.execute("update userinfo set point="&Point&" where email='"&Payer_email&"'")
set rs=nothing
closedb()
end if
elseif (objHttp.responseText = "INVALID") then
'未通过认证,有可能是编码错误或非法的POST信息
else
'处理其他错误
end if
set objHttp = nothing
%>
现在支付过了 获得不了信息, 数据库里面的内容没有发生变化,
Dim Item_name, Item_number, Payment_status, Payment_amount,Point
Dim Txn_id, Receiver_email, Payer_email
Dim objHttp, str
'从PayPal出读取POST信息同时添加变量'cmd'
str = Request.Form & "&cmd=_notify-validate"
'建议在此将接受到的信息记录到日志文件中以确认是否收到IPN信息
' 将信息POST回给PayPal进行验证
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
' set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
' set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
'在Sandbox情况下,设置:
' objHttp.open "POST", " https://www.sandbox.paypal.com/cgi-bin/webscr", false
objHttp.open "POST", " https://www.paypal.com/cgi-bin/webscr", false
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHttp.Send str
'将POST变量分配给本地变量
'该付款明细所有变量可参考:
' https://www.paypal.com/IntegrationCenter/ic_ipn-pdt-variable-reference.html
Item_name = Request.Form("item_name")
Item_number = Request.Form("item_number")
Payment_status = Request.Form("payment_status")
Payment_amount = Request.Form("mc_gross")
Payment_currency = Request.Form("mc_currency")
Txn_id = Request.Form("txn_id")
Receiver_email = Request.Form("receiver_email")
Payer_email = Request.Form("payer_email")
Point=0.0625*Payment_amount
'…
'检查通知是否合法
if (objHttp.status <> 200 ) then
'HTTP错误
elseif (objHttp.responseText = "VERIFIED") then
'检查付款状态是否完成("Completed")
'检查txn_id 是否已经处理过
'检查receiver_email是否是您的PayPal账户中的EMAIL地址
'检查付款金额和货币单位是否正确
'处理这次付款,包括写数据库
if Payment_status="Completed" then
opendb()
set rs=server.CreateObject("Adodb.recordset")
rs=conn.execute("update userinfo set point="&Point&" where email='"&Payer_email&"'")
set rs=nothing
closedb()
end if
elseif (objHttp.responseText = "INVALID") then
'未通过认证,有可能是编码错误或非法的POST信息
else
'处理其他错误
end if
set objHttp = nothing
%>
现在支付过了 获得不了信息, 数据库里面的内容没有发生变化,
作者: gshmj 发布时间: 2011-07-15
付完款后返回到这个页面你每个状态打印出具体信息,看是在哪里出问题
if (objHttp.status <> 200 ) then
response.write("HTTP错误")
这样依次打印错误提示看问题出在哪一步
if (objHttp.status <> 200 ) then
response.write("HTTP错误")
这样依次打印错误提示看问题出在哪一步
作者: beyond_me21 发布时间: 2011-07-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28