1

Paypal は、IPN が失敗していることを警告する電子メールを送信しています。

私は自分のコードに変更を加えていません。それは本当に古いコードです.... 5年以上働いています....あまりにも長い間、このサイトで何かをしなければなりませんでした.

サーバーログで詳細を検索しました...これは私が繰り返し見つけたものです

|35|80040e14|Syntax_error_(missing_operator)_in_query_expression_'OrderID='.

サイトのipnページでコードをチェックしましたが、困惑しました。何も変わっていませんが、機能しなくなりました

これは、ipn ページのコードの 34 行目から 36 行目です。

MM_Cmd.CommandText = "UPDATE Orders SET txn_id='" & txn_id & "',payment_status='" & payment_status & "' WHERE OrderID=" & Item_number
MM_Cmd.Execute 
end function

更新: Item_number を示す完全なコードは次のとおりです。

<%
str = Request.Form & "&cmd=_notify-validate"

' post back to PayPal system to validate
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objHttp.open "POST", "https://www.paypal.com/cgi-bin/webscr", false
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHttp.Send str

' assign posted variables to local variables
Item_number = Request("item_number")
Payment_status = Request("payment_status")
Txn_id = Request("txn_id")
if (objHttp.status <> 200 ) then
' HTTP error handling
elseif (objHttp.responseText = "VERIFIED") then
if Payment_status = "Completed" then 'only update database if the response text is verified and the payment complete
UpdateOrder
end if
elseif (objHttp.responseText = "INVALID") then
' log for manual investigation
else
' error
end if

set objHttp = nothing

function UpdateOrder
'on error resume next
Set MM_Cmd = Server.CreateObject("ADODB.Command")
MM_Cmd.ActiveConnection = MM_CharonCart_STRING
MM_Cmd.CommandText = "UPDATE Orders SET txn_id='" & txn_id & "',payment_status='" & payment_status & "' WHERE OrderID=" & Item_number
MM_Cmd.Execute 
end function
%>
4

1 に答える 1

0

問題は、変数 Item_number にあります。クエリの最後を次のように書き換えると、わずかな可能性があります。

... where OrderID=" & Cint(Item_number)

その後、問題は解決しますが、おそらく Item_number に値を割り当てるコードを確認する必要があります

于 2013-03-24T01:40:16.480 に答える