Я достаточно стучал головой:Проверить Paypal Adaptative Payment
Я пишу приложение для Android, которое получит платежи PayPal. Поэтому я использую this.
В Java-код для Android приложение, которое вы хотите найти:
intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, PaymentActivity.ENVIRONMENT_NO_NETWORK);
intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, "LARGE STRING AKA Client ID");
intent.putExtra(PaymentActivity.EXTRA_PAYER_ID, "The email of the paying girl");
intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, "The email I registered at PayPal");
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
в onActivityResult
Я получаю JSON:
{
"payment": {
"short_description": "Donation to Saving The Amazon",
"amount": "5",
"currency_code": "USD"
},
"client": {
"platform": "Android",
"paypal_sdk_version": "1.2.5",
"product_name": "PayPal Android SDK; ",
"environment": "mock"
},
"proof_of_payment": {
"adaptive_payment": {
"timestamp": "2014-02-09T22:44:45+0000",
"payment_exec_status": "COMPLETED",
"app_id": "_FAKE_APPLICATION_ID_",
"pay_key": "AP-70M68096ML426802W"
}
}
}
Теперь мне нужно проверить компенсацию. Я должен сделать запрос (от моего сервера), который выглядит следующим образом:
curl https://svcs.sandbox.paypal.com/AdaptivePayments/PaymentDetails \
-H "X-PAYPAL-SECURITY-USERID: {userId}" \
-H "X-PAYPAL-SECURITY-PASSWORD: {password}" \
-H "X-PAYPAL-SECURITY-SIGNATURE: {signature}" \
-H "X-PAYPAL-APPLICATION-ID: {appId}" \
-H "X-PAYPAL-REQUEST-DATA-FORMAT: NV" \
-H "X-PAYPAL-RESPONSE-DATA-FORMAT: NV" \
-d "payKey={payKey}
&requestEnvelope.errorLanguage=en_US"
PayPal page говорит, что я могу найти userId
в password
и тому signature
here, тогда как я только найти API Username
, API Password
и signature
. Я заменил userId на значение API Username
и password
со значением в API Password
(и, очевидно, signature
со значением). payKey
Я беру его с proof_of_payment
и appId
из приложения, которое мне нужно было создать here. Что отличает тот, который я создал here. Правильно ли это?
Edit: Мой запрос теперь выглядит следующим образом: (опуская некоторые части значений)
curl https://svcs.sandbox.paypal.com/AdaptivePayments/PaymentDetails \
-H "X-PAYPAL-SECURITY-USERID: info_api1.test.com" \
-H "X-PAYPAL-SECURITY-PASSWORD: XXNXXXA6XXX3PGXX" \
-H "X-PAYPAL-SECURITY-SIGNATURE: XXXXXvXXXXXqXXXXXm1XXXXXg3fOAuds4mc3XXXXXXXXJdy4XXXXXXqX" \
-H "X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T" \
-H "X-PAYPAL-REQUEST-DATA-FORMAT: NV" \
-H "X-PAYPAL-RESPONSE-DATA-FORMAT: NV" \
-d "payKey=AP-70M68096ML426802W
&requestEnvelope.errorLanguage=en_US"
После всего этого, PayPal счастлив сказать мне:
responseEnvelope. timestamp = 2014-02-09T15% 3A37% 3A37.559-08% 3A00 & responseEnvelope.ack = Сбой & responseEnvelope.correlationId = 33628be038bc5 & responseEnvelope.build = 9641252ошибка (0) .errorId = 520003 & ошибка (0) .domain = ПЛАТФОРМА & ошибка (0) = .subdomain Применение & ошибок (0) .severity = Ошибка & ошибка (0) = .category Применение & ошибок (0) .message = Authentication + не удалось. + API + полномочия + являются + некорректным.
Я просто не могу получить информацию, необходимую для подтверждения этого платежа. Что я делаю неправильно?
Благодарим вас! что решило мою проблему. Хотя я думаю, что руководства PayPal немного вводят в заблуждение относительно этой маленькой вещи. – edpaez