0

私は PDT フォームを設定しました。これは機能しており、支払いを収集してから、次のパラメーターを使用して適切な URL に戻ります。

tx=1* * *** *X&st=完了&amt=0.02&cc=GBP&cm=&item_number=NA

次のサンプルコードを使用しています。

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(strLive), 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
        lit1.Text = "verified"
    ElseIf strResponse = "INVALID" Then
        'log for manual investigation
        lit1.Text = "invalid"
    Else
        'Response wasn't VERIFIED or INVALID, log for manual investigation
        lit1.Text = "unknown"
    End If
    lit1.Text = lit1.Text & "<br /><br />" & strRequest.ToString

無効な応答しか得られないので、Paypal に送信されたものを確認しようとしましたが、&cmd=_notify-validate のみを送信し、残りのパラメーターは送信していません。

そのため、手動でパラメーターに追加しましたが、それでも無効になりました。

誰かが私が欠けているものを手伝ってくれますか? 支払いが成功しました

ありがとう

4

1 に答える 1