`
南京老油条
  • 浏览: 58003 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ruby实现桌面端银联支付

阅读更多

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

 

0
0
分享到:
评论

相关推荐

    ruby-使用ruby实现的排序算法-sorting.zip

    本资源"ruby-使用ruby实现的排序算法-sorting.zip"聚焦于如何使用Ruby实现不同的排序算法,这对于Ruby开发者来说是一项重要的技能。下面将详细讨论Ruby中的排序算法及其原理。 1. 内置排序方法 `sort` Ruby提供了...

    飞机大战ruby实现

    【标题】"飞机大战ruby实现" 是一个使用Ruby编程语言开发的飞行射击游戏,它基于RPG Maker XP 1.03引擎构建。这个项目展示了如何利用Ruby的灵活性和RPG Maker XP的功能来创建一款简单但有趣的游戏。 【描述】中的...

    Ruby-TensorStream用Ruby重新实现TensorFlow

    **Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...

    Ruby-twittercldrrbICU的Ruby实现

    这个库为Ruby开发者提供了一套强大的工具,用于在应用程序中实现多语言支持和文化敏感的文本处理。 首先,我们来了解一下ICU。ICU是一个广泛使用的开源库,它提供了全面的Unicode支持和跨平台的本地化功能。它包含...

    ruby-snmp, SNMP ( 简单网络管理协议)的ruby 实现.zip

    ruby-snmp, SNMP ( 简单网络管理协议)的ruby 实现 用于 ruby的 SNMP库摘要这里库实现 SNMP ( 简单网络管理协议) 。 它在纯 ruby 中实现,因此不依赖于的外部库( 如 ) 。 你可以在 ruby 可以运行的任何地方运行这里库...

    resume 用Ruby技术实现的search 分页的例子

    在Ruby on Rails(ROR)框架中,实现搜索和分页功能是常见的需求,尤其是在构建数据密集型Web应用时。本示例将深入探讨如何利用Ruby技术和Rails的强大特性来完成这一任务。 首先,我们需要理解搜索功能的基础:查询...

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...

    Ruby-Http2HTTP2协议的纯Ruby实现

    Ruby-Http2是HTTP/2协议的一个纯Ruby实现,它为Ruby开发者提供了一种高效、安全的方式来处理HTTP通信。HTTP/2是HTTP协议的最新版本,相比于早期的HTTP/1.1,它引入了许多改进,旨在提高网络性能,降低延迟,并优化...

    Ruby-Whois一个智能纯Ruby实现的WHOIS客户端与解析器

    Ruby-Whois是一个高效、灵活且完全用Ruby语言编写的WHOIS客户端和解析库。它设计用于查询域名、IP地址和其他WHOIS相关的记录,并能够处理各种服务器响应格式。这个库的强大之处在于它不仅可以发送WHOIS请求,还可以...

    基于ruby实现的音乐推荐网站.zip

    通过这个项目,我们可以学习到如何使用Ruby on Rails构建一个完整的Web应用,包括数据库交互、用户认证、推荐算法实现以及前后端交互等关键知识点。同时,这也是一个实际的案例,展示了如何将理论知识转化为实际项目...

    ruby-使用ruby实现的算法之冒泡排序.zip

    本资料包“ruby-使用ruby实现的算法之冒泡排序.zip”专注于讲解如何使用Ruby来实现经典的冒泡排序算法,这对于理解排序算法以及提升Ruby编程技能非常有帮助。 冒泡排序是一种基础且直观的排序算法,它通过重复遍历...

    SlopeOne推荐算法的Ruby实现_Ruby_下载.zip

    《SlopeOne推荐算法的Ruby实现》 在大数据和个性化推荐系统领域,SlopeOne算法是一种简单而有效的预测方法,尤其适用于处理大规模数据集。它由Daniel Lemire等人在2005年提出,旨在通过用户对物品的评分差异进行...

    ruby-使用ruby实现的算法之加密解密算法.zip

    本资源包"ruby-使用ruby实现的算法之加密解密算法.zip"显然包含了关于如何在Ruby中实现加密和解密算法的实例和代码。下面将详细介绍Ruby中常用的加密解密方法及相关知识点。 1. **基本概念** - **加密**:是将明文...

    一些图形算法的Ruby实现_Ruby_下载.zip

    在这个"一些图形算法的Ruby实现_Ruby_下载.zip"压缩包中,我们可以期待找到一些用Ruby编写的图形算法示例代码,帮助我们理解和应用这些概念。 1. 图的基本概念: - 图是由节点(或顶点)和边构成的数据结构,可以...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby自动化脚本实现网络拓扑映射

    从给定的文件信息来看,标题、描述及标签均指向了“Ruby自动化脚本实现网络拓扑映射”这一主题,然而,实际的部分内容却似乎与自动化脚本或网络拓扑映射没有直接关联,而更像是一个自动化操作的脚本示例,可能用于...

    Ruby-云片短息ruby服务器端api

    总之,"云片短息Ruby服务器端API"是一个方便的工具,它让Ruby开发者能轻松地在服务器端集成短信服务,实现诸如验证码发送、用户通知等功能。通过理解和熟练使用这个API,你可以提升应用的功能性和用户体验。

    Ruby-迁移SSDB到RedisPika工具集Ruby实现

    本篇文章将详细探讨一个特定的工具集,即使用Ruby语言实现的“SSDB到Redis/Pika”的迁移工具,标题为“Ruby-迁移SSDB到RedisPika工具集Ruby实现”。这个工具集主要针对那些希望将数据从SSDB(Simple Scalable ...

Global site tag (gtag.js) - Google Analytics