Sha256: af501b24520a44a8d5c5115d84bf1ec45c14a373c7093c91f2148b78a00b2c1f
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
require 'digest/md5' require 'cgi' require 'iconv' module Tenpay class Response attr_reader :order_id, :total_fee, :attach, :pay_time def initialize(params) @cmdno = params[:cmdno] || '' @date = params[:date] || '' @fee_type = params[:fee_type] || '' @pay_info = params[:pay_info] || '' @pay_result = params[:pay_result] || '' @pay_time = Time.at((params[:pay_time] || '0').to_i) @sign = params[:sign] || '' @order_id = (params[:sp_billno] || '').to_i @transaction_id = params[:transaction_id] || '' @total_fee = params[:total_fee] || '' @attach = params[:attach] || '' @spid = Tenpay::Config.spid @key = Tenpay::Config.key end def successful? @pay_info == 'OK' && @pay_result == '0' && valid_sign? end def valid_sign? @sign == Digest::MD5.hexdigest(sign_params).upcase end private def sign_params @sign_params ||= "cmdno=#{@cmdno}&pay_result=#{@pay_result}&date=#{@date}&transaction_id=#{@transaction_id}" + "&sp_billno=#{@order_id}&total_fee=#{@total_fee}&fee_type=#{@fee_type}" + "&attach=#{CGI.escape(@attach)}&key=#{@key}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tenpay-0.1.0 | lib/tenpay/response.rb |