本文旨在介绍如何完成在应用Ruby开发的网站(非Rails亦可)内集成支付宝的手机网页支付功能.
1.安装GEM包:
gem 'alipay_mobile', :github => 'https://github.com/oldfritter/alipay_mobile'
2.配置
AlipayMobile.pid = 'YOUR_PID' AlipayMobile.key = 'YOUR_KEY' AlipayMobile.seller_email = 'YOUR_SELLER_EMAIL'
3.完成支付业务
options = {req_id: orders.first.payment_sn, format: 'xml', v: '2.0', sec_id: 'MD5'} options[:req_data] = "<direct_trade_create_req><subject>#{orders.collect{|order|order.subject}.join(",").gsub(' ','')}</subject><out_trade_no>#{orders.first.out_trade_no}</out_trade_no><total_fee>#{orders.collect{|order|order.order_total_price}.sum}</total_fee><seller_account_name>#{Alipay.seller_email}</seller_account_name><call_back_url>#{orders.first.call_back_url{payment = 'alipay_mobile'}}</call_back_url><notify_url>#{orders.first.notify_url{payment = 'alipay_mobile'}}</notify_url><out_user>#{orders.first.out_user}</out_user><merchant_url>#{orders.first.merchant_url{payment = 'alipay_mobile'}}</merchant_url><pay_expire>3600</pay_expire><payment_type>1</payment_type></direct_trade_create_req>" #获取token: url = AlipayMobile::Service.mobile_web_instant_credit_authorization(options) @token = open(url) {|resp|return Nokogiri::HTML(URI.unescape resp.read).css('request_token').text} #交易 options = { service: 'alipay.wap.auth.authAndExecute', _input_charset: 'utf-8', partner: AlipayMobile.pid, seller_email: AlipayMobile.seller_email, req_id: orders.first.payment_sn, format: 'xml', v: '2.0', sec_id: 'MD5' } options[:req_data] = "<auth_and_execute_req><request_token>#{@token}</request_token></auth_and_execute_req>" payment_url = AlipayMobile::Service.mobile_web_instant_credit_transaction_url(options) redirect_to payment_url
4.验证支付宝的返回
# This is a action in the controller. def alipay_mobile_notify return false unless AlipayMobile::Notify.verify? params nokogiri = Nokogiri::XML params['notify_data'] payment_history = PaymentHistory.where(payment_sn: nokogiri.css('out_trade_no').text).first # PaymentHistory is a Model in my project. if nokogiri.css('trade_status').text == 'TRADE_FINISHED' || nokogiri.css('trade_status').text == 'TRADE_SUCCESS' .....your code.... end render text: 'success' # Here must return 'success'. end
相关推荐
ruby实现邮件收发
用ruby gem封装的alipay(支付宝)即时到帐接口调用,包含wap支付及手机客户端sdk支付,使用RSA验签 标签:ralipay
基于ruby实现的音乐推荐网站.zip基于ruby实现的音乐推荐网站.zip基于ruby实现的音乐推荐网站.zip
twitter-cldr-rb - ICU的Ruby实现
本资源是飞机大战类射击游戏的ruby实现,需要安装rpg maker xp 1.03才可打开本游戏。
ruby-snmp, SNMP ( 简单网络管理协议)的ruby 实现 用于 ruby的 SNMP库摘要这里库实现 SNMP ( 简单网络管理协议) 。 它在纯 ruby 中实现,因此不依赖于的外部库( 如 ) 。 你可以在 ruby 可以运行的任何地方运行这里库...
ruby实现文件对比资料收集,看完之后写一个文件对比的脚本或者输出报告没有问题,可以看看,
Whois一个智能纯Ruby实现的WHOIS客户端与解析器
Http-2 - HTTP/2协议的纯Ruby实现
ruby_使用ruby实现的排序算法_sorting
ruby_使用ruby实现的算法之冒泡排序
ruby_使用ruby实现的算法之加密解密算法
CuckooFilter是Cuckoo Filter的纯Ruby实现
ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码
支付宝非官方的支付宝Ruby。 注意:Alipay :: Client API在生产中还没有足够的反馈,请在生产前在您的登台环境中进行全面测试。 您可以找到旧版API文档。 在使用此gem之前,您应该阅读 。安装使用安装。 将此行添加...
ruby on rails社区网站开发源码
一些图形算法的Ruby实现_Ruby_下载.zip
这是一个ruby版本的银联手机支付gem,调用即可完成支付获取tn值传给手机