Хотелось бы думать, что я просто пропустил что-то очевидное здесь, но я не могу получить завершенный платеж (используя PHP SDK в песочнице). Я могу получить успешный ответ, и когда я перенаправляю пользователя на PayPal, данные о транзакции отображаются хорошо, но когда пользователь пытается завершить платеж, они получают страшную ошибку:Цепная оплата не может быть завершена
Ваш платеж не может быть завершено. Вернитесь на сайт-участника и повторите попытку.
Что вызывает разочарование в том, что я сбросил данные запроса, которые отправляются, и сравнил их с данными в the example given in the documentation и изменил мой запрос, пока они не были фактически одинаковыми, и до сих пор не кубиками. Я также не вижу ничего вообще ни на одной из учетных записей, чтобы указать, что платеж был предпринят, ожидающий или неудавшийся.
Это то, что посылается:
requestEnvelope.errorLanguage=en_US
&clientDetails.ipAddress=127.0.0.1
&clientDetails.applicationId=APP-80W284485P519543T
&actionType=PAY
&cancelUrl=http%3A%2F%2Fdomain.com%2Fpaypal%2Fcancel
¤cyCode=USD
&feesPayer=EACHRECEIVER
&memo=Test+Payment
&receiverList.receiver(0).amount=3.25
&receiverList.receiver(0).email=merchant%40domain.com
&receiverList.receiver(0).primary=1
&receiverList.receiver(1).amount=1.5
&receiverList.receiver(1).email=seller%40domain.com
&senderEmail=buyer%40domain.com
&returnUrl=http%3A%2F%2Fdomain.com%2Fpaypal%2Freturn
И ответ выглядит хорошо для меня:
PayPal\Types\AP\PayResponse Object
(
[responseEnvelope] => PayPal\Types\Common\ResponseEnvelope Object
(
[timestamp] => 2013-07-28T23:25:52.676-07:00
[ack] => Success
[correlationId] => bf1ba2c8a50d4
[build] => 6941298
)
[payKey] => AP-XXXXXXXXXXXXXXXXC
[paymentExecStatus] => CREATED
[payErrorList] =>
[paymentInfoList] =>
[sender] =>
[defaultFundingPlan] =>
[warningDataList] =>
[error] =>
)
Я также попытался установить тип действия PAY_PRIMARY, так как я с указанием первичного получателя и это в идеале то, что я в любом случае.
ОБНОВЛЕНИЕ: Увидев, что я все еще не получил ответа на билет, который я открыл с помощью PayPal, и никто не прокомментировал этот вопрос, я провел некоторое дополнительное тестирование. Если я сгенерирую тот же запрос в проводнике API, транзакция завершится нормально. Но точно такой же запрос проваливается через API. Я проверил (путем копирования и вставки, генерируемые заголовки и тело запроса), что только различия между запросом порожденного API Explorer, и код SDK являются следующие:
- Заголовки, созданные исследователем имеют пробел между именем и значением
- в API Explorer, не включает в себя идентификатор приложения
- Моего API вызов делает включать идентификатор приложения как в теле заголовка и запроса
Вызов API SDK по-прежнему не работает, если я удалю ссылку на идентификатор приложения, которая была добавлена в попытке решить эту проблему для начала.
Не понимаю, почему платеж, сгенерированный SDK (который предоставлен PayPal), не завершен, однако точный вызов работает нормально, когда его вызывает звонок. Любая помощь или совет будут оценены.