2012-02-17 6 views
3

私はHerokuのRailsでAuthorize.netを使用しています。私のauthorize.netトランザクションは成功するが、失敗したと報告するのはなぜですか?

https://developer.authorize.net/integration/fifteenminutes/ruby

私はAuthorize.net上でアカウントを作成し、同じようauthorize.netし送信するフォームを構築している:私は、次のようなオンラインの例を使用してAuthorize.netにリクエストを送信するためのフォームを作成しましたそう(HAMLで):

%h3 Enter your credit card details 
= form_for :sim_transaction, :url => @gateway_url do |f| 
    = sim_fields(@sim_transaction) 
    = order_details(@order) 
    .fields 
    .field 
     = label_tag 'x_card_num', 'Credit Card Number' 
     = text_field_tag 'x_card_num', params[:x_card_num], :style => 'width:200px' 
    .field 
     = label_tag 'x_exp_date', 'Expiration Date (MMYY)' 
     = text_field_tag 'x_exp_date', params[:x_exp_date], :style => 'width:40px' 
    .action 
     = f.submit 'Confirm order' 

ORDER_DETAILSは、発注書等から最初の名の隠しフィールド、姓を作成するヘルパーメソッドです。

authorize.netとユーザーのクレジットカードで処理された注文は請求されますが、中継応答へのPOSTはsim_responseが失敗し、処理されなかったことを示します。

if **sim_response.success?**(AUTHORIZE_NET_CONFIG['api_login_id'], AUTHORIZE_NET_CONFIG['merchant_hash_value']) 
    render :text => sim_response.direct_post_reply(payments_receipt_url(:only_path => false), :include => true) 
else 
    render 
end 

sim_response.success?コールはfalseです。または、具体的には、成功の方法と成功のこの部分で2つのテストがありますか?メソッドが偽です:

sim_response.valid_md5?(AUTHORIZE_NET_CONFIG['api_login_id'], AUTHORIZE_NET_CONFIG['merchant_hash_value']) 

私が返す結果コードは、トランザクションが処理されたことを意味します。それも私が見るテキストです。

私の研究では、valid_md5メソッドは誤ったapi_login_idがある場合にのみ発生しますが、そうは思われません。 login_idが間違っていた場合、トランザクションは成功しますか?これを追跡するための他の提案はありますか?

答えて

5

これは私の最後の間違ったミスでしたが、作るのは簡単でした。だから、私はここにそれを掲示している。

私はconfigにMD5_hash値を持っていました。これは、api_keyと同じ値です。これは、Authorize.netのgemがテストアカウント用に作成したものです。それは生産に間違っていたことが判明しました。私はMD5_ハッシュ値を設定していないので、アカウント設定でAuthorize.netで行い、authorize_net.yml configに追加しました。今すぐ正しく動作し、正しくリダイレ​​クトされます。

+0

間違いなく、「クイックスタート」からはっきりとしたことはありません。 MD5ハッシュ機能の詳細については、[SIM Guide](http://www.authorize.net/support/SIM_guide.pdf)が役立つことがわかりました。第6章の「MD5ハッシュ機能の使用」を参照してください。 –

+0

同様の問題が発生しています。私のauthorize_net.ymlには、 "merchant_hash_value"がありますが、MD5_hashはありません。あなたのアプリケーションを再び動かすためにMD5_hashフィールドを持っていなければなりませんか? –

関連する問題