Javascript 如何从重定向的支付处理器站点提取交易详细信息并保存到rails 4 db

Javascript 如何从重定向的支付处理器站点提取交易详细信息并保存到rails 4 db,javascript,ruby-on-rails,json,ruby-on-rails-4,Javascript,Ruby On Rails,Json,Ruby On Rails 4,我在一个付费广告招聘板上工作。我已经实现了一个尼日利亚支付处理器VoguePay,它没有提供任何关于在Ruby on Rails框架上使用其API来获取交易细节和使用它做任何事情的文档 注 VouguePay支付处理程序有一个POST方法,其操作重定向到it支付网站,以便能够进行交易 这就是我所做的,所以这个过程是在我的应用程序中完成的 我将VoguePay API封装在一个iFrame html标记中,这样这个过程就在我的应用程序上完成了,而不是在我的应用程序之外付款 下面是我的代码 作业控制

我在一个付费广告招聘板上工作。我已经实现了一个尼日利亚支付处理器VoguePay,它没有提供任何关于在Ruby on Rails框架上使用其API来获取交易细节和使用它做任何事情的文档

VouguePay支付处理程序有一个POST方法,其操作重定向到it支付网站,以便能够进行交易

这就是我所做的,所以这个过程是在我的应用程序中完成的

我将VoguePay API封装在一个iFrame html标记中,这样这个过程就在我的应用程序上完成了,而不是在我的应用程序之外付款

下面是我的代码

作业控制器

jobs\payments.html.erb

VoguePayForm,在上面的iframe src中呈现

VoguePay支付网络日志

我的问题/愿望/我喜欢做什么

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


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

我是根据技术团队对您提出的具体问题的反馈而写的,尽管还没有为Ruby on Rails开发特定的应用程序。请注意,我们对在VoguePay上创建第三方扩展的开发者开放

你应该怎么做

单击通知选项卡

它向您展示了如何使用生成的成功URL链接重定向到您的站点/应用程序。
请随时与我们联系support@voguepay.com如果需要任何进一步的帮助。

我已经完成了这里写的所有工作,但这并不能解决我的问题。我确实使用路由设置了我的成功url作为POST方法,这样它就链接到:是的,事务id是通过查看我的浏览器网络选项卡发布到该url的,但我仍然无法让它填充我的数据库表。由于您没有Rails文档,我认为使用JavaScript或JSON可以帮助我。
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
<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>
<%= 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>