我正在付费广告工作委员会上工作。我已经实现了一个尼日利亚付款处理器(VoguePay),该公司未提供有关在Ruby on Rails框架上使用其API来获取交易明细以及对其进行任何处理的文档。

注意

VouguePay付款处理器具有POST方法,其操作重定向到其付款网站(https://voguepay.com/pay/),以便能够进行交易。

这就是我所做的,以便该过程在我的App中完成

我将VoguePay API封装在iFrame html标记中,以便该过程在我的应用程序上完成,而不会在我的应用程序之外付款。


  以下是我的代码


JobsController

class JobsController < ApplicationController
  layout false, only: [:voguepay]

  def index
    @jobs = Job.paid_ad
  end

  def show
    @job = Job.find(params[:id])
  end

  def edit
    @job = Job.find(params[:id])
    redirect_to @job if @job.paid?
  end

  def update
    @job = Job.find(params[:id])
    if !(@job.paid?)
      @job.update_attributes(stripeEmail: params[:stripeEmail], payola_sale_guid: params[:transaction_id])
      # The "has_key?" Returns true if the given key/attribute is present in hash e.g.
      # h = { "a" => 100, "b" => 200 }
      # h.has_key?("a")   #=> true
      # h.has_key?("z")   #=> false.
      # So this means --Update job_params if the given key/attribute is present or not in job.
      @job.update(job_params) if params.has_key?(:job)
      redirect_to  preview_job_path(@job) #show_job_path
    else
      render :edit
    end
  end

  def new
    @job = Job.new
  end

  def create
    @job = Job.new(job_params)
    if @job.save
      redirect_to preview_job_path(@job)
    else
      render :new
    end
  end

  def preview
    @job = Job.find(params[:id])
    redirect_to @job if @job.paid?
  end

  def payment
    @job = Job.find_by_permalink(params[:permalink])
    redirect_to job_path(@job) if @job.paid?
  end

  def search
    @jobs = Job.search(params)
  end


  def voguepay
    #Nothing here yet.
  end

  private

  def job_params
    params.require(:job).permit(:title, :category, :location, :description, :to_apply, :email, :company_name, :website)
  end
end


jobs \ payments.html.erb

<iframe id="vogueFrame" seamless="seamless" target="_self" src="<%= '/../jobs/shared/voguepay' %>"
        style="width: 100%; height: 1200px; align:center"
        scrolling="no"
        marginwidth="0"
        marginheight="0"
        frameborder="0"
        vspace="0"
        hspace="0">
</iframe>


在上面的iframe src中呈现的VoguePayForm

<%= render 'shared/layout_for_voguepay'%>
<%= render 'shared/four_breaks' %>
<div class="container">
  <div class="row col-md-12">
    <p class="text-center"><strong style="font-weight: bold; font-size:20px;">STEP 3 (OF 3): ENTER YOUR CARD EMAIL & PROCEED TO MAKE PAYMENT</strong></p>
  </div>
</div>
<%= render 'shared/two_breaks' %>
<div class="container">
  <div class="row">
    <div class='col-md-4'></div>
    <div class="col-md-4 panel panel-default">
      <%#= render 'shared/two_breaks' %>

      <form method="POST" action="https://voguepay.com/pay/">
        <input type="hidden" name="v_merchant_id" value="demo" />
        <input type="hidden" name="memo" value="Payment for Far-Flung Jobs" />
        <input type="hidden" name="success_url" value="http://localhost:3000" />
        <input type="hidden" name="cur" value="NGN" />
        <input type="hidden" name="item_1" value="Job Ads" />
        <input type="hidden" name="price_1" value="3000" />
        <input type="hidden" name="description_1" value="FarFlung Jobs Ads Payment" /><br />



          <div class='form-row'>
            <div class="col-md-12 form-group">
              <button name="submit"  type="submit" class="btn" style="color: #ffffff; background: #990099 none; border-bottom: double; margin-bottom: 13px;" id="submit" >MAKE PAYMENT</button>
            </div>
          </div>
      </form>
    </div>
  </div>
</div>


VoguePay支付网络日志

Browser Network Log

我的问题/愿望/我想做什么

如何从重定向的支付处理器站点提取交易详细信息,然后使用JavaScript或JSON将选择的详细信息保存到Rails 4数据库/表中?

任何帮助将不胜感激。谢谢。

最佳答案

我是根据技术团队针对您提出的特定问题所获得的反馈而编写的,尽管目前还没有针对Ruby on Rails开发的特定应用程序。 (请注意,我们对在VoguePay上创建第三方扩展的开发人员开放)

你应该怎么做?


转到VoguePay's developers' page
单击通知选项卡。


Click Here to see image


它显示了如何使用生成的成功URL链接重定向到您的网站/应用程序。


如果需要任何进一步的帮助,请随时通过[email protected]与我们联系。

关于javascript - 如何从重定向的付款处理器站点提取交易详细信息并将其保存到我的4 db,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37029224/

10-10 07:36