34 lines
		
	
	
		
			839 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			839 B
		
	
	
	
		
			Ruby
		
	
	
	
class Blockchain::InvokeBlockchainApi < ApplicationService
 | 
						|
  # 调用blockchain
 | 
						|
 | 
						|
  attr_reader :params
 | 
						|
 | 
						|
  def initialize(params)
 | 
						|
    @params  = params
 | 
						|
  end
 | 
						|
 | 
						|
  def call
 | 
						|
    begin
 | 
						|
      uri = Blockchain.blockchain_config[:api_url]
 | 
						|
      uri = URI.parse(URI.encode(uri.strip))
 | 
						|
      res = Net::HTTP.start(uri.host, uri.port) do |http|
 | 
						|
        req = Net::HTTP::Post.new(uri)
 | 
						|
        req['Content-Type'] = 'application/json'
 | 
						|
        req.body = @params
 | 
						|
        http.request(req)
 | 
						|
      end
 | 
						|
      if res.code.to_i != 200
 | 
						|
        raise "区块链接口请求失败."
 | 
						|
      else
 | 
						|
        res_body = JSON.parse(res.body)
 | 
						|
        if res_body.has_key?("status")
 | 
						|
        else
 | 
						|
          raise "区块链接口请求失败."
 | 
						|
        end
 | 
						|
      end
 | 
						|
      return res_body
 | 
						|
    rescue Exception => e
 | 
						|
      raise "区块链接口请求失败."
 | 
						|
    end
 | 
						|
  end
 | 
						|
end |