Я использовал метод DoExpressCheckoutPayment, и он прошел успешно.Однако когда был вызван метод DoCapture, он вернул ошибку 10004, указав, что идентификатор транзакции недопустим.Это всегда работало в системе, над которой я работаю, но в последнее время он получает ошибки, подобные возвращаемым PayPal в методе DoCapture (ошибки включают Внутренняя ошибка , Транзакция отклонена из-за неверного аргумента [неверный идентификатор транзакции] ).Вот как отправляются данные:
var SendValues = new Dictionary<string, object>();
SendValues.Add("METHOD", "DoCapture");
SendValues.Add("USER", userName);
SendValues.Add("PWD", password);
SendValues.Add("SIGNATURE", signature);
SendValues.Add("VERSION", "62.0");
SendValues.Add("AUTHORIZATIONID", authIdFromDoExpressCheckoutPayment);
SendValues.Add("AMT", total);
SendValues.Add("COMPLETETYPE", "Complete");
SendValues.Add("CURRENCYCODE", "JPY");
SendValues.Add("INVNUM", orderNo);
Это ответ PayPal DoCapture:
Date:2018/12/14 11:30:39
METHOD:DoCapture
USER:[redacted]
PWD:[redacted]
SIGNATURE:[redacted]
VERSION:62.0
AUTHORIZATIONID:[redacted]
AMT:4935
COMPLETETYPE:Complete
CURRENCYCODE:JPY
INVNUM:[redacted]
authorizationid:[redacted]
timestamp:2018-12-14T02:30:38Z
correlationid:[redacted]
ack:Failure
version:62.0
build:000000
l_errorcode0:10004
l_shortmessage0:Transaction refused because of an invalid argument. See additional error messages for details.
l_longmessage0:The transaction id is not valid
l_severitycode0:Error
Я исчерпал темы, связанные с Paypal API в Интернете, но ни однойиз них действительно дал мне ответы.Некоторые веб-сайты / потоки говорят, что это связано с проблемами часовых поясов или проблемами с валютой (в частности, с JPY) или с сервером / тайм-аутами Paypal и т. Д. Мой текущий процесс работает, но иногда он просто получает сообщение об ошибке, и в этом месяце это происходит часто.
Кто-нибудь из вас, кто имеет подобный опыт?Как это можно исправить?Спасибо!