2013-01-22 163 views
1

我已經看到了兩種不同的版本應該如何進行付費電話,我想知道我做錯了什麼,因爲兩個版本都不起作用。貝寶的自適應付款

@result = HTTParty.post('https://svcs.sandbox.paypal.com/AdaptivePayments/Pay', 
    :body => 
    {:actionType => "PAY", 
    :currencyCode => "USD", 
    :receiverList => { 
     :receiver => [ 
     {:amount => "1.00", 
      :email => "[email protected]"}] 
    }, 
    :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" 
    } 
) 

@result = HTTParty.post('https://svcs.sandbox.paypal.com/AdaptivePayments/Pay', 
    :body => { 
    :actionType => "PAY", 
    :currencyCode => "USD", 
    "receiverList.receiver(0).email".to_sym => "[email protected]", 
    "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" 
    } 
) 

回答

3

我建議使用這個寶石,http://rubygems.org/gems/active_paypal_adaptive_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 

return_urlcancel_url值,一定要在自己的網站相對URL!

問候!

+0

這個工作!謝謝! – MichaelScaria