سلام دوستان، میخواستم بدونم کسی gem برای سرویس پرداخت آنلاین جهان پی سراغ داره، یا میشه از gem های دیگه استفاده کرد؟
من خودم یه کدی نوشتم، متصل همه میشه، پرداخت رو تایید میکنه. اما نمیخوام داخل controller یا model ازش استفاده کنم، برای همین فایل jpay.rb رو توی فولدر lib/jpay.rb قرار میدم و ازش استفاده میکنم. اگه کسی هم خواست ویرایش کنه و استفاده کنه یا روش بهتری ارائه بده.
میخواستم بدونم امکانش هست کد رو جم کنید. من دانش جم نویسی ندارم.
require 'savon'
module Jpay
def self.request_payment(amount, callback, order_id, text)
api = Rails.application.config.jpay_api
info = {api: api ,amount: amount, callback: callback, orderid: order_id, txt: text }
client ||= Savon.client(wsdl: 'http://www.jahanpay.com/webservice?wsdl')
res=client.call(:requestpayment, message: info)
if res.body[:requestpayment_response] and res.body[:requestpayment_response][:return]
code = res.body[:requestpayment_response][:return]
code
end
end
def self.response(amount, auth)
api = Rails.application.config.jpay_api
info = {api: api ,amount: amount, authority: auth}
client ||= Savon.client(wsdl: 'http://www.jahanpay.com/webservice?wsdl')
res=client.call(:verification, message: info)
if res.body[:verification_response] and res.body[:verification_response][:return]
code = res.body[:verification_response][:return]
code
end
end
end
که api = Rails.application.config.jpay_api
برای اینه که کد api رو توی فایل config/application.rb
به صورت زیر قرار دادم:
Rails.application.config.jpay_api = 'xxxxxxxx'
البته شاید حرفه ای ننوشته باشم.
برای پرداخت
jcode = Jpay.request_payment(@price, callback_url, @order.id, text)
برای تایید پرداخت
jcode = Jpay.response(@price, params[:au])
اگر jcode
برابر با 1
باشه یعنی پرداخت با موفقیت انجام شده است.
البته مستندات api رو میتونید توی سایت ببینید.