2017-02-20 13 views
1

Заранее благодарим за любую помощь. Я пробую несколько вещей, чтобы получить эту работу, а также прочитать много документации и следовать любому образцу, который я могу найти. Я уверен, что я делаю что-то неправильно, но не могу понять, что именно я делаю неправильно.Плохой запрос при попытке продать более одного предмета

То, что я пытаюсь это осуществить PayPal Express Checkout в Basic Client Integration пути, и, конечно, эта работа как шарм для транзакции, как показано ниже:

{ 
    "transactions": [{ 
     "amount": { 
      "total": 120, 
      "currency": "EUR", 
      "details": { 
       "tax": 20, 
       "subtotal": 100 
      } 
     }, 
     "item_list": { 
      "items": [{ 
       "name": "Item 1", 
       "description": "Item 1 Description", 
       "quantity": 1, 
       "price": 100, 
       "currency": "EUR" 
      }] 
     } 
    }] 
} 

Как я говорю выше работ по сделке как и следовало ожидать, однако, когда я пытаюсь добавить еще один пункт в сделку, как и в приведенной ниже:

{ 
    "transactions": [{ 
     "amount": { 
      "total": 240, 
      "currency": "EUR", 
      "details": { 
       "tax": 20, 
       "subtotal": 200 
      } 
     }, 
     "item_list": { 
      "items": [{ 
       "name": "Item 1", 
       "description": "Item 1 Description", 
       "quantity": 1, 
       "price": 100, 
       "currency": "EUR" 
      }, { 
       "name": "Item 2", 
       "description": "Item 2 Description", 
       "quantity": 1, 
       "price": 100, 
       "currency": "EUR" 
      }] 
     } 
    }] 
} 

... то, что я получаю ошибку «400 (Bad Request)» ... Я стараюсь несколько вещи, но любой из них, похоже, работает. Я просто не понимаю, что я делаю неправильно, так как первая транзакция работает, как ожидалось, но не вторая, даже когда (для меня) суммарный итог и сумма хорошо рассчитаны с соответствующим налоговым значением в счете.

Может ли кто-нибудь помочь мне в этом вопросе? Пожалуйста, если требуется дополнительная информация или детали, просто попросите их, и я постараюсь предоставить его как можно быстрее.

Еще раз спасибо за помощь!

P.S. Вероятно, проблема связана с налогами, поскольку, если я просто удалю налоговое поле и их расчет и просто оставлю общее количество и промежуточные суммы равными, то транзакция хорошо сделана и с несколькими позициями. Но, конечно, мне нужно указать соответствующие налоги при транзакции/покупке.

+0

Очевидным является то, что 'налог: 20' плюс' субтотальная: 200' не добавляет до «всего: 240» .. вы удвоили все, кроме налога! – TripeHound

+0

Привет! Большое спасибо за ваш ответ! Мне очень жаль, но я не понимаю, что вы сказали, вероятно, из-за моего бедного английского. Пожалуйста, позвольте мне объяснить, что я сушу. Конечно, промежуточный итог составляет 200, а налоги должны применяться на 20%, поэтому общая сумма составляет 240, не так ли? Как то, что я размещаю в транзакции. Так что я делаю неправильно? Еще раз спасибо за ваш ответ @TripeHound! –

+0

В вашем втором примере вы разделили в общей сложности '240' на налог' 20' и subtotal '200' ... эти последние два добавили только' 220'. Предположительно, налоговая запись должна быть «40». (Или, если вы собираетесь с 200, вы вычисляете 20% от 200 до 40, поэтому налог должен быть не 40, а не 20). – TripeHound

ответ

0

Я новичок здесь, в Stackoverflow, поэтому не уверен, что это правильный способ «ответить на вопрос». Вопрос был решен @TrypeHound выше. Проблема в том, что я установил налоговое поле в транзакции как процент от применяемых налогов. Это неверно. Налоговое поле должно отражать общие налоги, начисленные на покупку, а затем общее - промежуточный итог. Это способ сделать это, и, безусловно, теперь запрос работает как шарм. Еще раз спасибо @TrypeHound за вашу помощь!

0

Для дальнейшего использования, вы можете увидеть фактические ошибки в ответе на запрос оплаты:

PayPal payment request

+0

Здравствуйте, @bluepnume и спасибо за ваш ответ. Конечно, API предлагает более или менее хорошие сообщения об ошибках. Я думаю, что проблема здесь я не читал очень хорошо документацию (или, может быть, мои не очень хорошие английские причины проблемы), так как я упорствовать в ошибке ... и что сообщение об ошибке никогда не говорят нам реальный ответ на проблемы: налоговое поле должно быть установлено с общим количеством налогов. Другими словами, если мы упорно думать, что налоговое поле является налог процент ... то ошибки API не может помочь ... потому что мы всегда получаем сообщение, как «что-то не так в запросе» ... –