0

웹 페이지의 지불 시스템에이 보석 active_paypa_adaptive_payment을 사용하고 있습니다.발신자가 페이팔에 로그인하지 않고 지불 완료

preapproval_payment 기능은 잘 작동하고 내 데이터베이스 내부의 preapproval_key 있습니다.

이제 내 과 일치하도록 계약서 preaproval_key을 실행하고 싶습니다.

나는 cancel_preapproval 메서드를 검사 해 왔으며 정상적으로 작동합니다. 나는 계정을 수신기 보낸 사람 계좌에서 자금 이체 내 preapproval_key와 계약을 실행할 수있는 방법

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 

을 : 내 주문 controller.ie 내 cancel_order 방법에 cancel_preapproval 방법 페이팔 페이지로 이동 필요가없는

?

계약을 실행하는 대신 내 preapproval_key과 계약을 취소 할 수 있습니까?

당신에게이 솔루션은 응답에 필드 :preapproval_key를 추가입니다

답변

0

대단히 감사합니다. 당신의 행동에 뭔가 같은 :

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 ... 등으로 필드를 추가하는 것이 좋습니다.

감사합니다.

관련 문제