68 messaggi dal 04 ottobre 2007
Salve a tutti,
sto cercando di implementare un sito web con i risultati di una transazione di paypal.

Dal sito la chiamata a paypal parte da questo link

<a href="https://www.paypal.com/xclick/business=<%=PayPalA%>&item_name=ordine+n.+<%=PayPalB%>&amount=<%=PayPalC%><%=PayPald%>">

ora vorrei sapere se posso aggiungere semplicemente a questo link il parametro "return" con il relativo indirizzo cioè:

https://www.paypal.com/xclick/business=<%=PayPalA%>&item_name=ordine+n.+<%=PayPalB%>&amount=<%=PayPalC%><%=PayPald%>&return=http://www.miosito.it/ordine_confermato_paypal.asp

mi aiutate per cortesia?
Grazie in anticipo
68 messaggi dal 04 ottobre 2007
Scusate forse ho fatto confusione...
ricominciando daccapo mi basterebbe solo ricevere da paypal la risposta in merito alla transazione avvenuta o meno.

In giro ho trovato questo codice che permetterebbe di leggere la risposta da paypal ma la prima domanda è: se salvo questa pagina sul mio server, come faccio a dire a paypal il nome della pagina dove inviare la risposta?


Imports System.Net
Imports System.IO

Partial Class vbIPNexample
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Post back to either sandbox or live
Dim strSandbox As String = "https://www.sandbox.paypal.com/cgi-bin/webscr"
Dim strLive As String = "https://www.paypal.com/cgi-bin/webscr"
Dim req As HttpWebRequest = CType(WebRequest.Create(strSandbox), HttpWebRequest)

'Set values for the request back
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
Dim Param() As Byte = Request.BinaryRead(HttpContext.Current.Request.ContentLength)
Dim strRequest As String = Encoding.ASCII.GetString(Param)
strRequest = strRequest + "&cmd=_notify-validate"
req.ContentLength = strRequest.Length

'for proxy
'Dim proxy As New WebProxy(New System.Uri("http://url:port#"))
'req.Proxy = proxy

'Send the request to PayPal and get the response
Dim streamOut As StreamWriter = New StreamWriter(req.GetRequestStream(), Encoding.ASCII)
streamOut.Write(strRequest)
streamOut.Close()
Dim streamIn As StreamReader = New StreamReader(req.GetResponse().GetResponseStream())
Dim strResponse As String = streamIn.ReadToEnd()
streamIn.Close()

If strResponse = "VERIFIED" Then
'check the payment_status is Completed
'check that txn_id has not been previously processed
'check that receiver_email is your Primary PayPal email
'check that payment_amount/payment_currency are correct
'process payment
ElseIf strResponse = "INVALID" Then
'log for manual investigation
Else
'Response wasn't VERIFIED or INVALID, log for manual investigation
End If
End Sub
End Class 


per cortesia un piccolo aiuto così risolvo il problema...thanks
68 messaggi dal 04 ottobre 2007
mi sto avvicinando alla soluzione, mi manca poco e cioè qualsiasi azione scelgo dal simulatore paypal mi fa l'update del db come se avesse ricevuto "INVALID" cioè esegue l'update con il numero "5"...

questo il codice, mi dite se sbaglio qualcosa?

<%
Dim Item_name, Item_number, Payment_status, Payment_amount
Dim Txn_id, Receiver_email, Payer_email
Dim objHttp, str

' read post from PayPal system and add 'cmd'
str = Request.Form & "&cmd=_notify-validate"

' post back to PayPal system to validate
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")

' set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
' set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
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_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")

' Check notification validation
if (objHttp.status <> 200 ) then

' HTTP error handling
elseif (objHttp.responseText = "VERIFIED") then

  Dim SQL, RS
  Set rs = Server.CreateObject("ADODB.Recordset")
  SQL = " UPDATE ordini SET Pagato = 4 WHERE ID = " & Item_number
  Set RS = Conn.Execute(SQL)

' check that Payment_status=Completed
' check that Txn_id has not been previously processed
' check that Receiver_email is your Primary PayPal email
' check that Payment_amount/Payment_currency are correct
' process payment
elseif (objHttp.responseText = "INVALID") then

  SQL = " UPDATE ordini SET Pagato = 5 WHERE ID = " & Item_number
  Set RS = Conn.Execute(SQL)

' log for manual investigation
else

' error
end if
set objHttp = nothing
%>

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.