[英]How can I avoid auth and time issues using Paypal's Adaptive Payments API with Ruby?
我在尝试从Ruby访问Paypal的Adaptive Payment API时遇到了多个问题。
我最初遇到的主要问题是,Paypal要求他们的HTTP标头全部为大写,但Net :: HTTP不保留HTTP标头的情况(它将它们存储为'downcased'然后输出'大写' - 所以如果您设置标题'X-PAYPAL-SECURITY-USERID',它存储为'x-paypal-security-userid'并输出为'X-Paypal-Security-Userid')。
当我尝试将API与这些错误的标头一起使用时,我收到“500000内部服务器”错误。
所以我monkeypatched 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'
那么,回到我原来的问题:是否有人使用Ruby成功访问自适应支付API? 如果是这样,你的秘密是什么?
我为ruby创建了一个paypal自适应支付宝石。 我在nextsprocket.com成功使用它
这是一篇关于它的博客文章: http : //tommy.chheng.com/index.php/2009/12/paypal-adaptive-ruby-gem-released/
试一试,看看它是否会对你有所帮助。
我建议看一下PayPal的Ruby SDK。 Paypal的示例ruby代码虽然有很多错误。 我已经在下面列出了在示例代码工作之前需要进行的更改。 不确定他们是否已修复这些错误。 如果还没有按照以下步骤。
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,....
这应该是<%= form_tag(setpayparallel_path,....
3)确保所有表单都以<%end%>关闭
到目前为止,我发现SDK似乎是开始自适应支付的好地方
我推荐https://github.com/jpablobr/active_paypal_adaptive_payment - 我尝试使用paypal-adaptive gem没有成功,而APAP工作得很好。 (最终)。
官方Ruby PayPal自适应支付SDK gem https://github.com/paypal/adaptivepayments-sdk-ruby
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.