Платежный стандарт Paypal НЕ интегрируется с Java - PullRequest
0 голосов
/ 29 августа 2010

Эй, люди, я застрял, пытаясь объединить Java и PayPal вместе.Я разместил здесь: http://forum.springsource.org/showthread.php?p=316498#post316498

любая помощь будет принята с благодарностью, пожалуйста, сообщите.

Обновление:

хорошо, моя дилемма заключается в том, что если я буду использовать PayPalКак уже упоминалось, когда я на самом деле "сохранить" информацию о форме в моей локальной базе данных?Другими словами, мне нужно сохранять «пользовательскую» информацию и т. Д. Только ПОСЛЕ подтверждения платежа, раньше делать это было бы бесполезно.
Насколько я понимаю, «возвратный» URL будет активирован только в случае успешной транзакции.Если это так, то должен быть способ идентифицировать этот входящий ответ от PayPal, чтобы он был связан с постом формы для «этого» пользователя.Другими словами для «этой» сессии.Таким образом, пользовательские данные могут быть сохранены.Я знаю, что есть что-то под названием IPN?Может ли это быть изначально в той же форме, чтобы мы получили подтверждение?Я просто пытаюсь понять, как быть в том же сеансе, чтобы я мог сохранить информацию пользователя.И если кредитная карта пользователя отклонена, она все равно возвращается на URL ВОЗВРАТА?Нужно как-то различать.

Наконец, я играл с кодом HTTPPOST, в основном я пытаюсь смоделировать браузер здесь.

public void testPost15() throws ClientProtocolException, IOException {
     HttpClient client = new DefaultHttpClient();
             HttpPost post = new HttpPost("https://www.paypal.com/cgi-bin/webscr");
             post.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
              //conn.setRequestProperty( "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0");
             //httpPost.setHeader( "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
             //post.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

             //httpPost.setHeader( "Accept-Language", "en-us,en;q=0.5");
             //post.setHeader("Accept-Language","en-gb,en;q=0.5");
             List<NameValuePair> params = new ArrayList<NameValuePair>();
            //params.add(new BasicNameValuePair("cmd", "_s-xclick"));
            params.add(new BasicNameValuePair("cmd", "_xclick"));
            //params.add(new BasicNameValuePair("cmd", "_ext-enter"));
            //params.add(new BasicNameValuePair("redirect_cmd", "_xclick-subscriptions"));
            params.add(new BasicNameValuePair("business", "abc@logixplayer.com"));
            params.add(new BasicNameValuePair("currency_code", "USD"));
            params.add(new BasicNameValuePair("amount", "4"));
            params.add(new BasicNameValuePair("item_name", "PiT words"));
            params.add(new BasicNameValuePair("no_note", "1"));
            params.add(new BasicNameValuePair("return", "http://localhost:8080/pit-web-0.0.1-SNAPSHOT/welcome"));

            post.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = client.execute(post);
            InputStream is = response.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            StringBuilder str = new StringBuilder();
            String line = null;
            while((line = reader.readLine()) != null){
                str.append(line + "\n");
            }
            is.close();
                String responseText = str.toString();
                System.out.println("response: "+responseText);
}

, и я думаю, что начто-то говорит: Вы запросили устаревшую версию PayPal.Эта ошибка часто возникает из-за использования закладок.

Мне кажется, что возможно публиковать в PayPal через Java ... просто я думаю, что я что-то упустил.Эта ошибка является распространенной ошибкой.
Пожалуйста, сообщите.Спасибо.

1 Ответ

1 голос
/ 29 августа 2010

Вы не можете использовать URLConnection или Apache HttpPost, потому что они будут инициировать соединение между вашим веб-сервером и PayPal, а не между браузером клиента и PayPal.

Поскольку PayPal требует POST, а не GET, вы также не можете использовать перенаправление, поэтому единственный оставшийся вариант - это возврат HTML-страницы клиенту с формой со всеми параметрами PayPal как скрытой s. и немного javascript для немедленной отправки формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...