2013-09-11 2 views
0

Я звоню в песочницу PayPal с помощью функции «экспресс-проверка» из веб-приложения java. Первый вызов (SetExpressCheckout) успешно завершен, и я получаю токен, как ожидалось.PayPal Java NVP API GetExpressCheckoutDetails - Отсутствующие данные

Второй вызов («GetExpressCheckoutDetails») также подходит для получения ответа ACK = Success. Но есть все данные информации о плательщиках, такие как FIRSTNAME, LASTNAME или SHIPTOCITY.

Вот URL Я звоню с параметрами:

https://api-3t.sandbox.paypal.com/nvp?TOKEN=__MY_TOKEN__&VERSION=106.0&SIGNATURE=__MY_SIGNATURE__&METHOD=GetExpressCheckoutDetails&PWD=__MY_PASSWORD__&USER=__MY_USERNAME__ 

Вот тело, формирующего ответ, я получаю:

TOKEN=__MY_TOKEN__&CHECKOUTSTATUS=PaymentActionNotInitiated&TIMESTAMP=2013%2d09%2d11T20%3a56%3a36Z&CORRELATIONID=bb3916c14aa78&ACK=Success&VERSION=106%2e0&BUILD=7645184&CURRENCYCODE=USD&AMT=12%2e00&SHIPPINGAMT=0%2e00&HANDLINGAMT=0%2e00&TAXAMT=0%2e00&INSURANCEAMT=0%2e00&SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_CURRENCYCODE=USD&PAYMENTREQUEST_0_AMT=12%2e00&PAYMENTREQUEST_0_SHIPPINGAMT=0%2e00&PAYMENTREQUEST_0_HANDLINGAMT=0%2e00&PAYMENTREQUEST_0_TAXAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEAMT=0%2e00&PAYMENTREQUEST_0_SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false&PAYMENTREQUEST_0_ADDRESSNORMALIZATIONSTATUS=None&PAYMENTREQUESTINFO_0_ERRORCODE=0 

Если я ставлю тот же запрос URL в Firefox я получаю ответ, я бы ожидать:

TOKEN=__MY_TOKEN__&CHECKOUTSTATUS=PaymentActionNotInitiated&TIMESTAMP=2013%2d09%2d11T20%3a37%3a31Z&CORRELATIONID=7804316ba643d&ACK=Success&VERSION=106%2e0&BUILD=7645184&EMAIL=mne%2dcustomer2%40m%2dn%2de%2ede&PAYERID=QRZ57KR8PHVF4&PAYERSTATUS=verified&FIRSTNAME=Frank&LASTNAME=Forest&COUNTRYCODE=US&SHIPTONAME=Frank%20Forest&SHIPTOSTREET=1%20Main%20St&SHIPTOCITY=San%20Jose&SHIPTOSTATE=CA&SHIPTOZIP=95131&SHIPTOCOUNTRYCODE=US&SHIPTOCOUNTRYNAME=United%20States&ADDRESSSTATUS=Confirmed&CURRENCYCODE=USD&AMT=15%2e00&SHIPPINGAMT=0%2e00&HANDLINGAMT=0%2e00&TAXAMT=0%2e00&INSURANCEAMT=0%2e00&SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_CURRENCYCODE=USD&PAYMENTREQUEST_0_AMT=15%2e00&PAYMENTREQUEST_0_SHIPPINGAMT=0%2e00&PAYMENTREQUEST_0_HANDLINGAMT=0%2e00&PAYMENTREQUEST_0_TAXAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEAMT=0%2e00&PAYMENTREQUEST_0_SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false&PAYMENTREQUEST_0_SHIPTONAME=Frank%20Forest&PAYMENTREQUEST_0_SHIPTOSTREET=1%20Main%20St&PAYMENTREQUEST_0_SHIPTOCITY=San%20Jose&PAYMENTREQUEST_0_SHIPTOSTATE=CA&PAYMENTREQUEST_0_SHIPTOZIP=95131&PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE=US&PAYMENTREQUEST_0_SHIPTOCOUNTRYNAME=United%20States&PAYMENTREQUEST_0_ADDRESSSTATUS=Confirmed&PAYMENTREQUEST_0_ADDRESSNORMALIZATIONSTATUS=None&PAYMENTREQUESTINFO_0_ERRORCODE=0 

Этот ожидаемый ответ содержит PAYERID, FIRSTNAME, ФАМИЛИЯ, SHIPTOSTR EET, SHIPTOCITY и т.д.

Я попытался назвать песочницу PayPal из Java с помощью

  • Apache HttpClient GET запрос
  • запрос
  • Apache HttpClient POST
  • javax.net.ssl.HttpsURLConnection
  • Java. net.URLConnection

Я попытался запустить webapp в JBoss 7.1.1 на Mac OS X и JBoss 7.2.0 на выигрыше 8.

Я также попытался поставить номер порта в URL явно (https://api-3t.sandbox.paypal.com:443)

Результат всегда один и тот же. Информация о плательщике (имя, адрес) отсутствует, когда я вызываю ее из java.

У кого-нибудь есть идея, что не так?

UPDATE: Вызов песочницы PayPal из Eclipse (запрос GETClick Apache HttpClient) возвращает правильный ответ. Поэтому я предполагаю, что это может иметь какое-то отношение к JBoss AS.

ответ

0

После того, как вы позвоните в SetExpressCheckout, вы должны перенаправить покупателя в PayPal (https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=__MY_TOKEN__) и попросить их войти в систему и утвердить платеж. После того, как они это сделали и вернутся на ваш сайт, вызовите GetExpressCheckoutDetails для получения их информации.

+0

Спасибо, Мэтт, у меня на самом деле был неправильный порядок 1. SetExpressCheckout 2. GetExpressCheckoutDetails 3. Перенаправление пользователя в PayPal. Правильно: 1. SetExpressCheckout, 2. Перенаправить пользователя в PayPal, 3. GetExpressCheckoutDetails после возврата на мою страницу. – Vincent

+0

Использование песочницы - как это сделано Vincent - I woudl предлагает перенаправить на URL-адрес Sandbox: 'https: //www.sandbox.paypal.com/cgi-bin/webscr? Cmd = _express-checkout & token = __ MY_TOKEN__' –

Смежные вопросы