Как можно избежать проблем с авторизацией и временем, используя API адаптивных платежей Paypal с Ruby? - PullRequest
3 голосов
/ 27 апреля 2010

Я сталкиваюсь с несколькими проблемами, пытаясь получить доступ к API адаптивных платежей Paypal из Ruby.

Основная проблема, с которой я столкнулся вначале, заключалась в том, что Paypal требует, чтобы их заголовки HTTP были во всех заглавных буквах, но Net :: HTTP не сохраняет регистр HTTP-заголовков (он хранит их «в нижнем регистре» и затем выводит их «с заглавной буквы» - - поэтому, если вы установите заголовок «X-PAYPAL-SECURITY-USERID», он будет сохранен как «x-paypal-security-userid» и выведен как «X-Paypal-Security-Userid»).

Я получал ошибки «500000 Внутренний сервер», когда пытался использовать API с этими ошибочными заголовками.

Поэтому я установил Net :: HTTP, чтобы сохранить регистр заголовков. Но теперь я получаю исключения тайм-аута:

Timeout::Error (execution expired):
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:60:in `rbuf_fill'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/protocol.rb:104:in `read_all'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:2220:in `read_body_0'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:2173:in `read_body'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:2198:in `body'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:2137:in `reading_body'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1052:in `request'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:543:in `start'

Итак, вернемся к моему первоначальному вопросу: успешно ли кто-нибудь обращается к API адаптивных платежей с использованием Ruby? Если так, в чем твой секрет?

Ответы [ 4 ]

6 голосов
/ 21 мая 2010

Я создал гем адаптивных платежей PayPal для рубина. Я успешно использую его на nextsprocket.com

Вот сообщение в блоге об этом: http://tommy.chheng.com/index.php/2009/12/paypal-adaptive-ruby-gem-released/

Сделайте попытку и посмотрите, поможет ли это вам.

2 голосов
/ 01 июля 2011

Я бы порекомендовал посмотреть на Ruby SDK PayPal. Тем не менее, пример кода Ruby Paypal полон ошибок. Ниже приведен список изменений, которые необходимо внести, прежде чем их примерный код заработает. Не уверен, что они исправили эти ошибки. Если нет, просто следуйте инструкциям ниже.

Ruby SDK: https://www.x.com/community/ppx/sdks#ADAPI

Изменения, которые необходимо внести:

1) Перейдите в файлы xxx_controller.rb и измените следующую строку:

@ paykey = @response ["payKey"]

до:

@ paykey = @response ["payKey"] [0]

2) Убрать все пробелы между form_tag и (. В своем коде они пишут тег как <% = form_tag (setpayparallel_path, .... </p>

этот должен быть <% = form_tag (setpayparallel_path, .... </p>

3) Убедитесь, что все формы закрыты с <% end%>

До сих пор я обнаружил, что SDK кажется отличным местом для адаптивных платежей

0 голосов
/ 10 января 2014

Официальный Ruby PayPal SDK gem https://github.com/paypal/adaptivepayments-sdk-ruby

0 голосов
/ 22 июня 2012

Я рекомендую https://github.com/jpablobr/active_paypal_adaptive_payment - я безуспешно пытался использовать гем, адаптированный к PayPal, тогда как APAP работал отлично. (В конце концов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...