Адаптивные платежи PayPal — сбой на веб-сайте PayPal

Я провел большую часть дня, занимаясь этой проблемой, поэтому любая помощь приветствуется.

Я использую ActiveMerchant со шлюзом active_paypal_adaptive_payment, и у меня возникают некоторые проблемы. Во-первых, у меня нет идентификатора приложения, и я не знаю, где его взять. Мне интересно, моя ли это проблема.

Моя цель — отправить деньги со счета PayPal одного пользователя на счет другого с помощью Adaptive API. Я отладил до такой степени, что я уверен, что ActiveMerchant Gateway создает правильный XML:

<?xml version="1.0" encoding="UTF-8"?>
<PayRequest>
    <requestEnvelope>
        <detailLevel>ReturnAll</detailLevel>
        <errorLanguage>en_US</errorLanguage>
    </requestEnvelope>
    <actionType>PAY</actionType>
    <cancelUrl>http://localhost:3000/.../</cancelUrl>
    <returnUrl>http://localhost:3000/.../</returnUrl>
    <ipnNotificationUrl>http://localhost:3000/.../</ipnNotificationUrl>
    <currencyCode>USD</currencyCode>
    <receiverList>
        <receiver>
            <email>[email protected]</email>
            <amount>100.0</amount>
        </receiver>
    </receiverList>
    <reverseAllParallelPaymentsOnError>false</reverseAllParallelPaymentsOnError>
</PayRequest>

PayPal отвечает:

response_rash: !ruby/hash:Hashie::Rash
  response_envelope: !ruby/hash:Hashie::Rash
    timestamp: '2012-05-28T15:02:43.381-07:00'
    ack: Success
    correlation_id: 881baf8e93444
    build: '2945555'
  pay_key: AP-879734246V2339109
  payment_exec_status: CREATED

Затем я перенаправляю пользователя на правильную страницу PayPal. Пользователь входит в систему, просматривает свою информацию, а затем нажимает «Оплатить», и в этот момент он сталкивается с этой ошибкой:

Ваш платеж не может быть завершен. Вернитесь на участвующий веб-сайт и повторите попытку.

Я даже загрузил в промежуточную среду, чтобы увидеть, срабатывает ли IPN, но это не так, я предполагаю, что это связано с тем, что платеж никогда не был завершен. Я хотел бы видеть, что происходит на стороне PayPal, но я не думаю, что они предлагают какие-либо инструменты для этого.

Кто-нибудь видел подобную ошибку? Любые советы относительно того, куда двигаться дальше?


person Michael Boutros    schedule 28.05.2012    source источник
comment
Действительно ли cancelUrl, returnUrl и ipnNotificationUrl должны быть localhost? Кажется, легко совершить ошибку...   -  person sarnold    schedule 29.05.2012
comment
@sarnold Для среды разработки эти URL-адреса работают нормально - например, возврат URL-адреса отмены работает правильно.   -  person Michael Boutros    schedule 29.05.2012


Ответы (1)


Проблема была на самом деле в отсутствии идентификатора приложения. Немного покопавшись, я обнаружил, что глобальный идентификатор приложения Sandbox — APP-80W284485P519543T. Это пока работает, пока я не получу настоящий идентификатор приложения.

person Michael Boutros    schedule 29.05.2012
comment
вы просто спасли меня от боли :) - person HungryCoder; 19.03.2013