`
zcq100
  • 浏览: 21754 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ruby 建行支付接口

阅读更多

#by zcq100

require 'md5'

require "openssl"

 

module Payment::Cmb::Cmbpay

 

  # merchantid 商家编号

  #

  # posid 商户柜台代码

  #

  #branchid 分行代码

  #

  #orderid 由商户提供的订单号码,最长30位,按实际长度给出

  #

  #payment 由商户提供,最长30位,按实际长度给出

  #

  #curcode 交易币种,默认01(人民币)

  #

  #txcode 由建行统一分配为690401(企业账户)520100(个体账户)

  #

  #remark1 网银不处理,直接传到城综网

  #

  #remark2 网银不处理,直接传到城综网

  #

  #个体商户的url可以直接GET请求提交参数,如果是企业商户参数必须POST提交

  def pay(merchantid,posid,branchid,orderid,payment,curcode="01",txcode="520100",remark1="",remark2="")

    #参考发送的url

    #https://ibsbjstar.ccb.com.cn/app/ccbMain?MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=500.00&CURCODE=01&TXCODE=520100&REMARK1=&REMARK2=&MAC=qwertyuioplkjhgfdsazxcvbnm901234

    baseurl="https://ibsbjstar.ccb.com.cn/app/ccbMain"

    p=Hash.new

    p[:MERCHANTID]=merchantid

    p[:POSID]=posid

    p[:BRANCHID]=branchid

    p[:ORDERID]=orderid

    p[:PAYMENT]=payment

    p[:CURCODE]=curcode

    p[:TXCODE]=txcode

    p[:REMARK1]=remark1

    p[:REMARK2]=remark2

    #得到签名,签名是根据url和参数直接md5加密

    p[:MAC]=sign p

    url=baseurl+"?"+p.to_query()

  end

 

 

  #商家签名

  def sign params

    MD5.hexdigest(params.to_query())     

  end

 

  #根据银行返回的签名检查url是否被篡改

  def check_sign url

    public_key="这里是公匙"

    enctype=url.slice(url.rindex("&")+6,url.length);

    str=url.slice(0,url.rindex("&"))

    enctype_str=rsa_public_encrypt(str,public_key)

    if enctype==enctype_str

      return true

    else

      p "签名校验非法"

      return false

    end

  end

 

  #用公匙RSA签名参数

  def rsa_public_encrypt(value , public_key)

    rsa = OpenSSL::PKey::RSA.new(public_key)

    rsa.public_encrypt(value)

  end

end

分享到:
评论

相关推荐

    支付宝即时到帐接口的Ruby封装ralipay.zip

    用ruby gem封装的alipay(支付宝)即时到帐接口调用,包含wap支付及手机客户端sdk支付,使用RSA验签 标签:ralipay

    ruby和redis接口

    Ruby 和 Redis 接口是开发过程中非常重要的工具,它们允许Ruby程序员充分利用Redis的高效数据存储和处理能力。Redis是一款开源的、基于键值对的数据结构存储系统,它以内存为运行基础,支持多种数据结构,如字符串、...

    ruby和redis接口.zip

    这个“ruby和redis接口”的压缩包可能包含了更多关于如何在实际项目中利用Ruby与Redis接口进行数据操作的例子和最佳实践。通过学习和理解这些接口,开发者能够充分利用Redis的性能优势,为应用程序提供高效的数据...

    ruby和redis接口.rar

    当我们需要搭建一个Redis集群时,Ruby的接口扮演着关键的角色。下面将详细介绍这两个工具以及它们之间的接口。 首先,Ruby语言以其简洁、灵活和强大的元编程能力受到开发者喜爱。在与Redis交互时,Ruby提供了多种库...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby-RubyGraphVizGraphViz绘图工具的Ruby接口

    RubyGraphViz是Ruby编程语言与GraphViz图形渲染库之间的接口,允许开发者在Ruby程序中生成复杂的图形和图表。GraphViz是一个强大的开源图形绘制软件,它能够自动生成有向无环图(DAG)、树状图、网络图等多种类型的...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    ice最简单实现 ruby调用ice接口 - Ruby - language - ITeye论坛

    标题中的“ice最简单实现 ruby调用ice接口”是指在Ruby编程语言中使用ICE(Internet Communication Engine)框架来实现远程方法调用(RPC)。ICE是由ZeroC开发的一种跨平台、高性能的中间件,它允许不同语言的应用...

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    Ruby-rubybuild编译和安装Ruby

    Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...

    Ruby完全自学手册

    Ruby是一种简洁而功能强大的编程语言,由日本的松本行弘(Yukihiro "Matz" Matsumoto)在1993年开发,并于...此外,由于技术不断更新,保持对最新Ruby版本的关注,以及学习相关的最佳实践和安全知识也是至关重要的。

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

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

    Ruby-TensorStream用Ruby重新实现TensorFlow

    这意味着整个框架不依赖于TensorFlow的C++或Python接口,而是完全在Ruby环境中运行。这为Ruby开发者提供了更直观、更无缝的体验,同时也减少了跨语言交互的复杂性。纯Ruby实现也意味着更少的依赖项,简化了安装和...

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    src-oepkgs/ruby-ruby2ruby

    src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...

    Ruby资源ruby-v3.1.1.zip

    4. **线程局部变量**:Ruby 3.1增加了对线程局部变量的支持,这些变量在每个线程中都有独立的副本,提高了多线程编程的安全性和效率。 5. **改进的错误消息**:错误消息现在更加详细,包含更多信息,帮助开发者更快...

    Ruby编程Ruby Programming

    根据提供的文件信息,我们将深入探讨与“Ruby编程Ruby Programming”这一主题相关的几个核心知识点。这本面向初学者和高级读者的指南旨在全面介绍Ruby编程语言的基础及其高级特性,因此我们将从多个角度来解析这些...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    apache mod_ruby

    这样,开发者可以直接在Web服务器上编写Ruby代码,而无需借助于像CGI或者FastCGI这样的接口。 **安装和配置mod_ruby:** 1. **安装Ruby**:首先,你需要在你的系统上安装Ruby。这可以通过包管理器(如apt-get或yum...

Global site tag (gtag.js) - Google Analytics