Paypal IPN проверен, но не работает моя вставка или мой журнал - PullRequest
1 голос
/ 05 марта 2020

У меня есть некоторые проблемы с ipn Paypal. У меня есть сервер windows с IIS, с 2 доменами, 1 находится в папке root, а другой - самый глубокий.

www.website.com -> root / index.aspx

www.secondweb.com -> root / website / complete / 4 / index.aspx

IP-адрес Paypal проверен на обоих сайтах, поскольку в https://developer.paypal.com/developer/ipnSimulator/ работает и в https://www.paypal.com/cgi-bin/webscr?cmd=_display-ipns-history&nav=0.3.2 снова работает.

В моем коде на данный момент нет проверки пакета, потому что я получаю почти весь свой код, но я могу собрать, что проверено, но я все еще не понимаю, почему на сайте из root работает (пишите в db и log), а в другом нет. Это мой код.

<%@ Page Language="VB" aspcompat=true%>
<%@ Import Namespace="MySql.Data.MySqlClient" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web" %>

<%
Dim IdWeb = System.Guid.NewGuid().ToString()
Dim IdUse
Dim Pac
Dim AllPar
Dim IdDis
Dim MonGra
Dim Price

'Listener Payment 
Dim objHttp, str
' read post from PayPal system and add 'cmd'
str = Request.Form.ToString() & "&cmd=_notify-validate"
' post back to PayPal system to validate
objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
' set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
' set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
objHttp.open("POST", "https://ipnpb.paypal.com/cgi-bin/webscr", false)
objHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
objHttp.Send(str)

'Creo e apro connessione
Dim Connection As New MySqlConnection("server=localhost;Uid=root;Pwd=***;Database=mb")
Dim Command As New MySqlCommand
Command.Connection = Connection
Connection.Open()

' Esecuzione frase SQL
Command.CommandText = "INSERT INTO WEBSITE (IDWEB) VALUES ('bbb')"
Command.ExecuteNonQuery()

'Chiusura connessione
Connection.Close()

using fs = new FileStream(HttpContext.Current.Request.MapPath("log.txt"),FileMode.Append, FileAccess.Write) 
    using swr = new StreamWriter(fs)
        swr.Write(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")+" ")
        swr.Write("hello")
        swr.Write(Environment.NewLine)
    end using
end using   
%>

Итак, я попытался указать на конфигурацию SSL сертификата, я думаю, что вы правы, проблема должна быть, потому что все остальное работает, и оно одинаково для обоих веб-сайтов. Это моя конфигурация

https All unassigned 443
www.website.com
Require server name indication
ssl certificate
website.com

https All unassigned 443
www.secondweb.com
Require server name indication
ssl certificate
secondweb.com

У меня есть это предупреждение

Сайт SSL по умолчанию не был создан. Для поддержки браузеров без возможностей SNI рекомендуется создать SSL-сайт по умолчанию.

По-прежнему то же самое в отношении моих проблем. Может быть, это предупреждение все еще не работает? Я прочитал это

Одна вещь, которую стоит отметить при реализации SNI для вашего решения SSL, она не будет работать для тех пользователей, которые используют Inte rnet Explorer в Windows XP

Они выполняют один и тот же запрос

            <form id="payment" action="https://www.paypal.com/cgi-bin/webscr" method="post">
                <input type="hidden" name="cmd" value="_xclick-subscriptions">
                <input type="hidden" name="business" value="***">
                <input type="hidden" name="item_name" value="MB Website's Production">
                <input type="hidden" name="no_shipping" value="1">
                <input type="hidden" name="a1" value="0">
                <input type="hidden" name="p1" value="1">
                <input type="hidden" name="t1" value="M">
                <input type="hidden" name="a3" value="0.01">
                <input type="hidden" name="p3" value="1">
                <input type="hidden" name="t3" value="M">
                <input type="hidden" name="src" value="1">
                <input type="hidden" name="currency_code" value="EUR">
                <input type="hidden" name="custom" value="Mirco---completed------1---0.01">
                <input type="submit" value="Envía">
            </form>

Единственное различие между ними заключается в положении веб-сайтов.

Может быть, у PayPal IPN есть некоторые проблемы с sni?

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Наконец-то это работает !!! Мне пришлось поместить свою страницу ipn в root root / paypal_ipn.aspx До того, как у меня была одна страница ipn для основного сайта и еще одна для второго сайта, теперь я управляю всем, начиная с одной в root и всем работает! Спасибо

0 голосов
/ 06 марта 2020

Paypal IPN проверен на обоих веб-сайтах, потому что в https://developer.paypal.com/developer/ipnSimulator/ работает и в https://www.paypal.com/cgi-bin/webscr?cmd=_display-ipns-history&nav=0.3.2 работает снова.

Все это Это означает, что сообщение IPN было отправлено, и конечная точка ответила HTTP 200 OK.

Что происходит дальше, то и происходит сбой. Ваш код пытается подключиться к https://ipnpb.paypal.com/cgi-bin/webscr?cmd=_notify-validate, что является первой ошибкой. Вам необходимо зарегистрировать все возможные ошибки в вашем коде и отладить это. Это соединение HTTPS может быть сбой. Это может быть связано с требованием TLS 1.2 или с тем, что вы не доверяете центру сертификации, который доверяет эмитенту SSL-сертификата конечной точки сервера PayPal.

И при условии, что все работает правильно и вы получаете ответ «VALID» от конечной точки обратной передачи ipn, позже в вашем коде могут возникнуть другие проблемы.

Вам необходимо выполнить собственную отладку во время выполнения из своей среды; мы не можем отладить этот код, работающий в вашей системе, для вас.

...