Оплата покупателем Paypal с помощью рельсовых адаптивных платежей - PullRequest
1 голос
/ 01 июля 2011

Кто-нибудь успешно установил изображение заголовка в displayOptions.headerImageUrl с адаптивными платежами в Ruby?Я бьюсь головой о стену, пытаясь понять это.

Насколько я понимаю, у меня есть одно действие set_pay_chained, которое получает ключ оплаты и вызывает функцию оплаты, но мне нужно создать совершенно другую функциюпросто сказать PayPal URL-адрес изображения.Это правильно?У кого-нибудь есть пример, как это сделать в Ruby / Rails?

В настоящее время мой код в основном выглядит следующим образом.

def set_pay_chained 

  @host=request.host.to_s
  @port=request.port.to_s   
  @cancelURL= params[:returnurl_paypal]
  #@returnURL="http://#{@host}:#{@port}/websamples/ap/setpaychained/pay_details"  
  @returnURL= params[:returnurl_paypal]
  @@ep["SERVICE"]="/AdaptivePayments/Pay" 
  @caller =  PayPalSDKCallers::Caller.new(false)
  req={     
    "requestEnvelope.errorLanguage" => "en_US",
    "clientDetails.ipAddress"=>@@clientDetails["ipAddress"],
    "clientDetails.deviceId" =>@@clientDetails["deviceId"],
    "clientDetails.applicationId" => @@clientDetails["applicationId"],
    "feesPayer"=> "PRIMARYRECEIVER",
    "receiverList.receiver[0].email"=>params[:receiveremail_0],    
    "receiverList.receiver[1].email"=> params[:receiveremail_1],
    "receiverList.receiver[0].amount"=>params[:amount_0],
    "receiverList.receiver[1].amount"=>params[:amount_1],
    "receiverList.receiver[0].primary[0]"=> "true",
    "receiverList.receiver[1].primary[1]"=> "false",

    "currencyCode"=> "USD",
    "actionType"=>"PAY",
    "returnUrl" => @returnURL,
    "cancelUrl"=>"#{@cancelURL}&paykey=#{@paykey}", 
  }
  @transaction = @caller.call(req)

  if (@transaction.success?)
    session[:setpaychained_response]=@transaction.response    
    @response = session[:setpaychained_response]
    @paykey = @response["payKey"][0]
    @paymentExecStatus=@response["paymentExecStatus"]

    if (@paymentExecStatus.to_s=="COMPLETED")
      redirect_to :controller => 'setpaychained',:action => 'pay_details'
    else
      redirect_to  "https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=#{@paykey}" 
    end
  else
    session[:paypal_error]=@transaction.response
    redirect_to :controller => 'calls', :action => 'error'
  end
rescue Errno::ENOENT => exception
  flash[:error] = exception
  redirect_to :controller => 'calls', :action => 'exception'
end

== Обновление == В формах для разработчиков Paypal мне были даны различные советы.Я перенес обсуждение здесь, чтобы посмотреть, смогу ли я получить более «рельсовый» способ справиться с этим.Пока что SweatCoder предоставил, как мне кажется, самое близкое решение, которое я ищу.К сожалению, код написан на PHP (который я очень, очень, очень хорошо понимаю), поэтому я сейчас пытаюсь перевести этот код (https://www.x.com/message/211714#211714) в ruby. Насколько я понимаю, мне нужно сделать два отдельных вызова. Iне могу сказать, должен ли я совершать эти звонки одновременно, а если нет, какой звонок должен прийти первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...