2016-10-24 5 views
0

Я получаю Внутренняя ошибка сервера (500) при создании платежа в PayPal с помощью Java-кода с использованием полезной нагрузки json в песочнице.Внутренняя ошибка сервера (500) paypal создать платеж Rest API с полезной нагрузкой Java json в песочнице

Я сделал это с JSON:

{ 
"intent": "sale", 
"redirect_urls": 
{ 
"return_url": "somelink", 
"cancel_url": "somelink" 
}, 
"payer": 
{ 
"payment_method": "paypal" 
}, 
"transactions": [ 
{ 
"amount": 
{ 
"total": "17", 
"currency": "EUR" 
}, 
"description": "This is payment tran." 
}] 
} 

Я пытался закончить тот же самый материал, используя почтальон, и я могу сделать это. Фактически я завершил всю транзакцию платежа (утверждение и исполнение) с использованием почтальона

Я передаю соответствующий токен доступа с Носителем.

HttpPost paymentPost = new HttpPost("api.sandbox.paypal.com/v1/payments/payment"); 
paymentPost.setHeader(HttpHeaders.AUTHORIZATION, pt.getTokenType() + " " + pt.getAccessToken()); 
List<NameValuePair> nvPairs = new ArrayList<NameValuePair>(4); 
nvPairs.add(new BasicNameValuePair("content-type", "application/json")); nvPairs.add(new BasicNameValuePair("Accept", "application/json")); 
paymentPost.setEntity(new UrlEncodedFormEntity(nvPairs)); 
+0

Вы установили правильный заголовок типа контента. Content-Type: применение/JSON? –

+0

Hi Nitish Я использую код ниже \t \t HttpPost paymentPost = новый HttpPost ("https://api.sandbox.paypal.com/v1/payments/payment"); \t \t paymentPost.setHeader (HttpHeaders.AUTHORIZATION, pt.getTokenType() + "" + pt.getAccessToken()); \t \t \t \t Список nvPairs = new ArrayList (4); \t \t nvPairs.add (новый BasicNameValuePair ("content-type", "application/json")); \t \t nvPairs.add (новый BasicNameValuePair («Accept», «application/json»)); \t \t paymentPost.setEntity (новый UrlEncodedFormEntity (nvPairs)); – user3703906

ответ

0

Вы настраиваете тип контента и принимаете тело запроса, а не заголовки. А также в вашем коде я не вижу, где вы добавляете json к запросу. Возможно, вы это делаете и не показывали в своем коде, который вы опубликовали. , Вам нужно использовать addHeader для добавления заголовков. Возможно, вы можете попробовать приведенный ниже код и посмотреть, исправляет ли он проблему.

HttpPost paymentPost = new HttpPost("api.sandbox.paypal.com/v1/payments/payment"); 
paymentPost.setHeader(HttpHeaders.AUTHORIZATION, pt.getTokenType() + " " + pt.getAccessToken()); 
paymentPost.addHeader("content-type", "application/json"); 
paymentPost.addHeader("Accept", "application/json"); 
paymentPost.setEntity(new StringEntity(/**"YOUR JSON STRING"**/)); 
+0

Спасибо Nithish. Я пропустил это. Я создаю и передаю свой json в объекте String. – user3703906

+0

@ user3703906 так сделал выше код работы ?. –

+0

Да Nitish. Извините за столь поздний ответ. – user3703906