1

このコードを呼び出すと、このエラーが発生します。

response = EXPRESS_GATEWAY.setup_purchase(order.price_in_cents,
  :ip                => request.remote_ip,
  :return_url        => url_for(:action => :create, :only_path => false),
  :cancel_return_url => root_path
)

redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)

エラー:

This transaction is invalid. Please return to the recipient's website to complete your transaction using their regular checkout flow.

表示するには、EXPRESS_GATEWAY を正しくセットアップします。コード development.rb ファイル。

config.after_initialize do
  ActiveMerchant::Billing::Base.mode = :test
  paypal_options = {
    :login => '*****************************',
    :password => '*************',
    :signature => '*******************************************************'
  }
  ::EXPRESS_GATEWAY = ActiveMerchant::Billing::PaypalExpressGateway.new(paypal_options)
end

宝石ファイル

gem 'activemerchant', :require => 'active_merchant'

したがって、ログイン、パスワード、および署名。サンドボックスで作成されたのはペイパルのものです。だから彼らは働いているはずです。

このエラーを修正するにはどうすればよいですか。それともこれはPaypal側ですか?ActiveMerchant gem に何か問題がありますか?

更新 1

応答変数を調べた後、これが得られます。

#<ActiveMerchant::Billing::PaypalExpressResponse:0x00000102402790 @params={"timestamp"=>"2012-06-29T01:30:18Z", "ack"=>"Failure", "correlation_id"=>"d1cb5dbb30425", "version"=>"72", "build"=>"3067390", "message"=>"CancelURL is invalid.", "error_codes"=>"10472", "Timestamp"=>"2012-06-29T01:30:18Z", "Ack"=>"Failure", "CorrelationID"=>"d1cb5dbb30425", "Errors"=>{"ShortMessage"=>"Transaction refused because of an invalid argument. See additional error messages for details.", "LongMessage"=>"CancelURL is invalid.", "ErrorCode"=>"10472", "SeverityCode"=>"Error"}, "Version"=>"72", "Build"=>"3067390"}, @message="CancelURL is invalid.", @success=false, @test=true, @authorization=nil, @fraud_review=false, @avs_result={"code"=>nil, "message"=>nil, "street_match"=>nil, "postal_match"=>nil}, @cvv_result={"code"=>nil, "message"=>nil}>

フィードバックをお待ちしております。

更新 2

上記のメッセージを確認したところ、cancelURL が無効だったことが判明したので、それを修正してさっさと!

ありがとう。

4

1 に答える 1

0

このエラーは、paypal のサイトでサンドボックス アカウントに正しくログインしていない場合に表示されます。

  1. http://sandbox.paypal.com/にログインします。
  2. サイトを開いてチェックアウトする
  3. Paypal に送信されたら、バイヤー テスト アカウントの 1 つとしてログインします
于 2012-06-28T19:57:47.337 に答える