Installation
Add this line to your application's Gemfile:
gem 'upop', :git => 'https://github.com/oldfritter/upop'
And then execute:
$ bundle install
Usage
Config
Upop.store_no = '105550149170027' # Your store NO.
Upop.store_name = '上海一树网络科技有限公司' # Your company name.
Upop.key = '88888888' # Your key.
Upop.UPOP_TRADE_URL = 'http://58.246.226.99' # This is the test Gateway.
Generate payment options
@option = {
merId: Upop.store_no,
backEndUrl: orders.first.call_back_url{payment = 'upop'},
frontEndUrl: orders.first.call_back_url{payment = 'upop'},
orderTime: Time.now.strftime('%Y%m%d%H%M%S'),
orderNumber: orders.first.payment_sn,
orderAmount: (orders.collect{|order|order.order_total_price}.sum * 100).to_i,
orderCurrency: 156,
customerIp: orders.first.customer.ip
} # 构建option
@options = Upop::Service.desktop_payment @option
Payment form
<form id="union_pay_form" action="<%= Upop.UPOP_TRADE_URL %>/UpopWeb/api/Pay.action" method='POST'> <input type="hidden" name='backEndUrl' value='<%= @options['backEndUrl'] %>'/> <input type="hidden" name='charset' value='<%= @options['charset'] %>'/> <input type="hidden" name='customerIp' value='<%= @options['customerIp'] %>'/> <input type="hidden" name='frontEndUrl' value='<%= @options['frontEndUrl'] %>'/> <input type="hidden" name='merAbbr' value='<%= @options['merAbbr'] %>'/> <input type="hidden" name='merId' value='<%= @options['merId'] %>'/> <input type="hidden" name='orderAmount' value='<%= @options['orderAmount'] %>'/> <input type="hidden" name='orderCurrency' value='<%= @options['orderCurrency'] %>'/> <input type="hidden" name='orderNumber' value='<%= @options['orderNumber'] %>'/> <input type="hidden" name='orderTime' value='<%= @options['orderTime'] %>'/> <input type="hidden" name='orderTimeout' value='<%= @options['orderTimeout'] %>'/> <input type="hidden" name='signMethod' value='<%= @options['signMethod'] %>'/> <input type="hidden" name='signature' value='<%= @options['signature'] %>'/> <input type="hidden" name='transType' value='<%= @options['transType'] %>'/> <input type="hidden" name='version' value='<%= @options['version'] %>'/> <input type='submit'/> </form>
Verify
def upop_notify return false unless Upop::Sign.verify? params.except('action', 'controller') # Do something. render text: 'success' end def upop_success return false unless Upop::Sign.verify? params.except('action', 'controller') # Do something. redirect_to #your success page. end
相关推荐
本资源"ruby-使用ruby实现的排序算法-sorting.zip"聚焦于如何使用Ruby实现不同的排序算法,这对于Ruby开发者来说是一项重要的技能。下面将详细讨论Ruby中的排序算法及其原理。 1. 内置排序方法 `sort` Ruby提供了...
【标题】"飞机大战ruby实现" 是一个使用Ruby编程语言开发的飞行射击游戏,它基于RPG Maker XP 1.03引擎构建。这个项目展示了如何利用Ruby的灵活性和RPG Maker XP的功能来创建一款简单但有趣的游戏。 【描述】中的...
**Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...
这个库为Ruby开发者提供了一套强大的工具,用于在应用程序中实现多语言支持和文化敏感的文本处理。 首先,我们来了解一下ICU。ICU是一个广泛使用的开源库,它提供了全面的Unicode支持和跨平台的本地化功能。它包含...
ruby-snmp, SNMP ( 简单网络管理协议)的ruby 实现 用于 ruby的 SNMP库摘要这里库实现 SNMP ( 简单网络管理协议) 。 它在纯 ruby 中实现,因此不依赖于的外部库( 如 ) 。 你可以在 ruby 可以运行的任何地方运行这里库...
在Ruby on Rails(ROR)框架中,实现搜索和分页功能是常见的需求,尤其是在构建数据密集型Web应用时。本示例将深入探讨如何利用Ruby技术和Rails的强大特性来完成这一任务。 首先,我们需要理解搜索功能的基础:查询...
Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...
Ruby-Http2是HTTP/2协议的一个纯Ruby实现,它为Ruby开发者提供了一种高效、安全的方式来处理HTTP通信。HTTP/2是HTTP协议的最新版本,相比于早期的HTTP/1.1,它引入了许多改进,旨在提高网络性能,降低延迟,并优化...
Ruby-Whois是一个高效、灵活且完全用Ruby语言编写的WHOIS客户端和解析库。它设计用于查询域名、IP地址和其他WHOIS相关的记录,并能够处理各种服务器响应格式。这个库的强大之处在于它不仅可以发送WHOIS请求,还可以...
通过这个项目,我们可以学习到如何使用Ruby on Rails构建一个完整的Web应用,包括数据库交互、用户认证、推荐算法实现以及前后端交互等关键知识点。同时,这也是一个实际的案例,展示了如何将理论知识转化为实际项目...
本资料包“ruby-使用ruby实现的算法之冒泡排序.zip”专注于讲解如何使用Ruby来实现经典的冒泡排序算法,这对于理解排序算法以及提升Ruby编程技能非常有帮助。 冒泡排序是一种基础且直观的排序算法,它通过重复遍历...
《SlopeOne推荐算法的Ruby实现》 在大数据和个性化推荐系统领域,SlopeOne算法是一种简单而有效的预测方法,尤其适用于处理大规模数据集。它由Daniel Lemire等人在2005年提出,旨在通过用户对物品的评分差异进行...
本资源包"ruby-使用ruby实现的算法之加密解密算法.zip"显然包含了关于如何在Ruby中实现加密和解密算法的实例和代码。下面将详细介绍Ruby中常用的加密解密方法及相关知识点。 1. **基本概念** - **加密**:是将明文...
在这个"一些图形算法的Ruby实现_Ruby_下载.zip"压缩包中,我们可以期待找到一些用Ruby编写的图形算法示例代码,帮助我们理解和应用这些概念。 1. 图的基本概念: - 图是由节点(或顶点)和边构成的数据结构,可以...
Ruby Ruby Ruby Ruby Ruby Ruby
从给定的文件信息来看,标题、描述及标签均指向了“Ruby自动化脚本实现网络拓扑映射”这一主题,然而,实际的部分内容却似乎与自动化脚本或网络拓扑映射没有直接关联,而更像是一个自动化操作的脚本示例,可能用于...
总之,"云片短息Ruby服务器端API"是一个方便的工具,它让Ruby开发者能轻松地在服务器端集成短信服务,实现诸如验证码发送、用户通知等功能。通过理解和熟练使用这个API,你可以提升应用的功能性和用户体验。
本篇文章将详细探讨一个特定的工具集,即使用Ruby语言实现的“SSDB到Redis/Pika”的迁移工具,标题为“Ruby-迁移SSDB到RedisPika工具集Ruby实现”。这个工具集主要针对那些希望将数据从SSDB(Simple Scalable ...