0

我正在使用這個寶石active_paypa_adaptive_payment在網頁上的支付系統。付款完成後沒有發件人登錄到PayPal

preapproval_payment功能工作正常,我有一個preapproval_key我的數據庫內。

現在我想執行與我的preaproval_key協議。

我一直在檢查​​方法,它工作正常。

我不需要去貝寶頁面​​方法在我cancel_order方法在我的訂單controller.ie:

preapproval_key = @order.payment.preapproval_key 
response = gateway.cancel_preapproval(:preapproval_key => preapproval_key) 
    respond_to do |format| 
     if response.ack == "Success" 
     @order.update_attributes 
      format.html { redirect_to user_orders_url(current_user), notice: t(".cancel_order_success") } 
     else 
      format.html { redirect_to user_orders_url(current_user), alert: t(".cancel_order_wrong") } 
     end 
    end 

我如何用我的preapproval_key執行協議,轉移資金從發件人帳戶到接收帳戶?

是否有可能通過此功能執行協議,而不是通過我的preapproval_key取消協議?

非常感謝您

回答

0

的解決方案是該領域:preapproval_key添加到響應。喜歡的東西,在你的行動:

def your_action 

recipients = [{:email => 'receiver_email', 
       :amount => some_amount, 
       :primary => true}, 
       {:email => 'receiver_email', 
       :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 
    :preapproval_key => "your_preapproval_key_here", 
) 

respond_to do |format| 
    if object.update_attributes 
    format.html { redirect_to root_path, notice: t(".success") } 
    else 
    format.html { redirect_to root_path, alert: t(".wrong") } 
    end 
    end 

end 

請注意,您必須有可用的preapproval_key。您可以保存到您的數據庫,當您進行預先批准的付款或您可以得到它與api PreapprovalDetails

用這種方法,您可以使用預先批准的付款進行支付。我建議你添加字段爲:fees_payer,:senderEmail,:memo ...等更多細節。

問候!