[英]Paypal Adaptive Payment for Ruby
I've seen two different versions on how the pay call should be made and I wanted to know what I am doing wrong because both versions do not work. 我已经看到了两种有关如何进行付费电话的版本,并且我想知道自己在做错什么,因为这两种版本都不起作用。
@result = HTTParty.post('https://svcs.sandbox.paypal.com/AdaptivePayments/Pay',
:body =>
{:actionType => "PAY",
:currencyCode => "USD",
:receiverList => {
:receiver => [
{:amount => "1.00",
:email => "rec1_1312486368_biz@gmail.com"}]
},
:returnUrl => "www.yahoo.com",
:cancelUrl => "google.com",
:requestEnvelope => {
:errorLanguage => "en_US",
:detailLevel => "ReturnAll"}
},
:headers => {
"X-PAYPAL-SECURITY-USERID" => "caller_13124862354_api1.gmail.com",
"X-PAYPAL-SECURITY-PASSWORD" => "1234567890",
"X-PAYPAL-SECURITY-SIGNATURE" => "AbtI7HV1xB428VygBUcIhARzxch4AL78.T19CTeylixNNxDZUu0iO87e",
"X-PAYPAL-APPLICATION-ID" => "APP-81W284485P518643T",
"X-PAYPAL-REQUEST-DATA-FORMAT" => "JSON",
"X-PAYPAL-RESPONSE-DATA-FORMAT" => "JSON"
}
)
AND 和
@result = HTTParty.post('https://svcs.sandbox.paypal.com/AdaptivePayments/Pay',
:body => {
:actionType => "PAY",
:currencyCode => "USD",
"receiverList.receiver(0).email".to_sym => "rec1_1312486368_biz@gmail.com",
"receiverList.receiver(0).amount".to_sym => "1.00",
:returnUrl => "www.yahoo.com",
:cancelUrl => "gizmodo.com",
:requestEnvelope => {
:errorLanguage => "en_US",
:detailLevel => "ReturnAll"}
},
:headers => {
"X-PAYPAL-SECURITY-USERID" => "caller_13124862354_api1.gmail.com",
"X-PAYPAL-SECURITY-PASSWORD" => "1234567890",
"X-PAYPAL-SECURITY-SIGNATURE" => "AbtI7HV1xB428VygBUcIhARzxch5AL65.T18CTeylixNNxDZUu0iO87e",
"X-PAYPAL-APPLICATION-ID" => "APP-81W284485P518643T",
"X-PAYPAL-REQUEST-DATA-FORMAT" => "JSON",
"X-PAYPAL-RESPONSE-DATA-FORMAT" => "JSON"
}
)
I recommend use this gem, http://rubygems.org/gems/active_paypal_adaptive_payment , you can make payments, Pre-approved payment, cancel payments ...etc. 我建议使用http://rubygems.org/gems/active_paypal_adaptive_payment这个gem,您可以进行付款, 预先批准的付款,取消付款等。
You need use the next code to make a payment. 您需要使用下一个代码进行付款。
def checkout #this method is for checking, you must add this code to your method on your controller
recipients = [{:email => 'email1',
:amount => some_amount,
:primary => true},
{:email => 'email2',
:amount => recipient_amount,
:primary => false}
]
response = gateway.setup_purchase(
:return_url => url_for(:action => 'action', :only_path => false),
:cancel_url => url_for(:action => 'action', :only_path => false),
:ipn_notification_url => url_for(:action => 'notify_action', :only_path => false),
:receiver_list => recipients
)
# For redirecting the customer to the actual paypal site to finish the payment.
redirect_to (gateway.redirect_url_for(response["payKey"]))
end
The return_url
and cancel_url
values, must be relative urls on your own website! return_url
和cancel_url
值必须是您自己网站上的相对URL!
Regards! 问候!
PayPal has official Ruby SDK( paypal-sdk-adaptivepayments ) 贝宝有官方的Ruby SDK( 贝宝SDK-adaptivepayments )
Samples available at http://paypal-sdk-samples.herokuapp.com/adaptive_payments/pay 可从http://paypal-sdk-samples.herokuapp.com/adaptive_payments/pay获取示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.