2017-02-24 7 views
0

railsアプリケーションでPayfort支払いゲートウェイを実装しようとしています。 しかし、私は、次の応答メッセージを取得しています:Ruby On RailsアプリケーションとPayfort支払いを統合する

"response_message":"Signature mismatch" 

は次のように私の試みです:

params = {command: "AUTHORIZATION", 
      currency: "USD", 
      access_code: "z7TfXF2xxxxxxxxxxxx", 
      merchant_identifier: "xoNbjDoq", 
      merchant_reference: "405", 
      language: "en", 
      amount: 250, 
      token_name: "token_is_here", 
      expiry_date: "07/2023", 
      card_number: "5200421234563432", 
      card_security_code: "417", 
      card_holder_name: "Abc Xyz", 
      remember_me: "YES", 
      return_url: "http://lvh.me:3000/payments/test"} 
params = params.except(:card_security_code, :card_number, :expiry_date, :card_holder_name, :remember_me) 

    params = params.sort.to_h 
    string = params.to_query(nil) 
    string = string.gsub! '&', '' 
    string = @@sha_request + string + @@sha_request 
    string = Digest::SHA256.hexdigest string 
uri = URI.parse("https://sbpaymentservices.payfort.com/FortAPI/paymentApi") 

    header = {'Content-Type': 'application/json'} 

    http = Net::HTTP.new(uri.host, uri.port) 
    http.use_ssl = true 
    request = Net::HTTP::Post.new(uri.request_uri, header) 
    request.body = params.to_json 

    response = http.request(request) 

任意の助けが理解されるであろう。前もって感謝します。 :)

答えて

0

署名を生成する際にパラメータのシーケンスをチェックします。そして、このような問題には多くの理由があるかもしれないuは、アカウントに設定しているアルゴリズムをチェックし、署名生成

もないとは

https://github.com/payfort/start-ruby

+0

ありがとうございます。しかし、あなたは私にパラメータの例を教えてもらえますか?ありがとう:) – Vishal

0

自分の宝石を使用してみながら、同じアルゴリズムを使用してそれらの一つは、レールの形でありますparamsやアルゴリズムをハッシュすると、ここに私の実装があります。

関連する問題