Javascript 如何从重定向的支付处理器站点提取交易详细信息并保存到rails 4 db
我在一个付费广告招聘板上工作。我已经实现了一个尼日利亚支付处理器VoguePay,它没有提供任何关于在Ruby on Rails框架上使用其API来获取交易细节和使用它做任何事情的文档 注 VouguePay支付处理程序有一个POST方法,其操作重定向到it支付网站,以便能够进行交易 这就是我所做的,所以这个过程是在我的应用程序中完成的 我将VoguePay API封装在一个iFrame html标记中,这样这个过程就在我的应用程序上完成了,而不是在我的应用程序之外付款 下面是我的代码 作业控制器 jobs\payments.html.erb VoguePayForm,在上面的iframe src中呈现 VoguePay支付网络日志 我的问题/愿望/我喜欢做什么 如何使用JavaScript或JSON从重定向的支付处理器站点提取交易详细信息,并将所选的详细信息保存到Rails 4数据库/表中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标记中,这样这个过程就在我的应用程序上完成了,而不是在我的应用程序之外付款 下面是我的代码 作业控制
任何帮助都将不胜感激。谢谢 我是根据技术团队对您提出的具体问题的反馈而写的,尽管还没有为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>