wx_pay 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/wx_pay.rb +1 -1
- data/lib/wx_pay/service.rb +22 -2
- data/lib/wx_pay/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 509e50b1a6926828e434a63bf8621fd853709ac0
         | 
| 4 | 
            +
              data.tar.gz: fee8d3226f9576f72209bcc74ed02b514483ecc2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 448dbfed70032ce996f2ec727f2af69ac2c2d9a0e03ee01baa4ec91a9f8b87c5dbd7340b5c6255fd216d8cb86c508d015c989abee0b3b707783e2ac5de4e54ed
         | 
| 7 | 
            +
              data.tar.gz: b203b3950ff9663896e8d4cde3ad2042cd525a418be4e4f0bc0978fb00fb5ab3c1a5a42810623f9b9ea25f0533950e9361dab8ca69b5b0d9a699b7a2ac44bf3f
         | 
    
        data/lib/wx_pay.rb
    CHANGED
    
    | @@ -8,7 +8,7 @@ module WxPay | |
| 8 8 | 
             
              @debug_mode = true
         | 
| 9 9 |  | 
| 10 10 | 
             
              class<< self
         | 
| 11 | 
            -
                attr_accessor :appid, :mch_id, :key, :extra_rest_client_options, :debug_mode
         | 
| 11 | 
            +
                attr_accessor :appid, :mch_id, :key, :appsecret, :extra_rest_client_options, :debug_mode
         | 
| 12 12 | 
             
                attr_reader :apiclient_cert, :apiclient_key
         | 
| 13 13 |  | 
| 14 14 | 
             
                def set_apiclient_by_pkcs12(str, pass)
         | 
    
        data/lib/wx_pay/service.rb
    CHANGED
    
    | @@ -1,10 +1,30 @@ | |
| 1 1 | 
             
            require 'rest_client'
         | 
| 2 | 
            +
            require 'json'
         | 
| 3 | 
            +
            require 'cgi'
         | 
| 4 | 
            +
            require 'securerandom'
         | 
| 2 5 | 
             
            require 'active_support/core_ext/hash/conversions'
         | 
| 3 6 |  | 
| 4 7 | 
             
            module WxPay
         | 
| 5 8 | 
             
              module Service
         | 
| 6 9 | 
             
                GATEWAY_URL = 'https://api.mch.weixin.qq.com'
         | 
| 7 10 |  | 
| 11 | 
            +
                def self.generate_authorize_url(redirect_uri, state = nil)
         | 
| 12 | 
            +
                  state ||= SecureRandom.hex 16
         | 
| 13 | 
            +
                  "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{WxPay.appid}&redirect_uri=#{CGI::escape redirect_uri}&response_type=code&scope=snsapi_base&state=#{state}"
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def self.authenticate(authorization_code, options = {})
         | 
| 17 | 
            +
                  options = WxPay.extra_rest_client_options.merge(options)
         | 
| 18 | 
            +
                  url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=#{WxPay.appid}&secret=#{WxPay.appsecret}&code=#{authorization_code}&grant_type=authorization_code"
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  ::JSON.parse(RestClient::Request.execute(
         | 
| 21 | 
            +
                    {
         | 
| 22 | 
            +
                      method: :get,
         | 
| 23 | 
            +
                      url: url
         | 
| 24 | 
            +
                    }.merge(options)
         | 
| 25 | 
            +
                  ), quirks_mode: true)
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 8 28 | 
             
                INVOKE_UNIFIEDORDER_REQUIRED_FIELDS = [:body, :out_trade_no, :total_fee, :spbill_create_ip, :notify_url, :trade_type]
         | 
| 9 29 | 
             
                def self.invoke_unifiedorder(params, options = {})
         | 
| 10 30 | 
             
                  params = {
         | 
| @@ -193,9 +213,9 @@ module WxPay | |
| 193 213 | 
             
                    nonce_str: SecureRandom.uuid.tr('-', '')
         | 
| 194 214 | 
             
                  }.merge(params)
         | 
| 195 215 |  | 
| 196 | 
            -
                  check_required_options(params, ORDER_QUERY_REQUIRED_FIELDS)
         | 
| 197 216 |  | 
| 198 217 | 
             
                  r = WxPay::Result.new(Hash.from_xml(invoke_remote("#{GATEWAY_URL}/pay/orderquery", make_payload(params), options)))
         | 
| 218 | 
            +
                  check_required_options(params, ORDER_QUERY_REQUIRED_FIELDS)
         | 
| 199 219 |  | 
| 200 220 | 
             
                  yield r if block_given?
         | 
| 201 221 |  | 
| @@ -267,7 +287,7 @@ module WxPay | |
| 267 287 | 
             
                  private
         | 
| 268 288 |  | 
| 269 289 | 
             
                  def check_required_options(options, names)
         | 
| 270 | 
            -
                    return  | 
| 290 | 
            +
                    return unless WxPay.debug_mode?
         | 
| 271 291 | 
             
                    names.each do |name|
         | 
| 272 292 | 
             
                      warn("WxPay Warn: missing required option: #{name}") unless options.has_key?(name)
         | 
| 273 293 | 
             
                    end
         | 
    
        data/lib/wx_pay/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: wx_pay
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.12.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jasl
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-10-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rest-client
         |