0

我在网页上使用这个 gem active_paypa_adaptive_payment支付系统。

preapproval_payment功能运行良好,我的数据库中有一个preapproval_key

现在我想用我的preaproval_key执行协议。

我一直在检查cancel_preapproval方法,它确实工作正常。

我不需要在我的订单控制器cancel_preapproval中使用我的方法中的方法进入贝宝页面。即:cancel_order

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

非常感谢你

4

1 回答 1

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... 等以获取更多详细信息。

问候!

于 2012-09-05T20:42:40.843 回答