1

gem "active_paypal_adaptive_payment"支払いオプションも設定しました

def checkout
  recipients = [recipientarray]
  response = gateway.setup_purchase(
    :return_url => url_for(:action => 'action', :only_path => false),
    :cancel_url => url_for(:action => 'action', :only_path => false),
    :ipn_notification_url => url_for(:action => 'notify_action', :only_path => false),
    :receiver_list => recipients
  )

  # For redirecting the customer to the actual paypal site to finish the payment.
  redirect_to (gateway.redirect_url_for(response["payKey"]))
end

Paypal の支払いページにリダイレクトされます。これがそのページです。ここに画像の説明を入力

支払概要には、商品名、価格などは表示されません。

誰でも設定方法を提案できますか。助けてください

ありがとう

4

1 に答える 1

0

代わりに「 ActiveMerchant 」ジェムを使用してみてください。これは Shofify によって更新されており、まさにあなたが探しているものを実行できるようになっています。

問題

PayPal にアイテムを一覧表示させる方法は、ExpressCheckout バージョンを使用して(ピアツーピア支払いを設定しているだけだと思います)、ハッシュ配列でアイテムを渡します。カートを使用しますが、他にも何かあるかもしれません。

Paypal epxres の秘訣は、すべての合計を適切に合計する必要があることです。私が投稿したコードでわかるように、今のところ静的な送料値を使用しています (この現在のプロジェクトはまだ開発中です) が、不要な場合は送料を省略できます。


解決

私が持っている唯一のコードなので、私は ActiveMerchant を保証することしかできませんが、ここで行うことは次のとおりです。

ルート

#config/routes.rb
get 'checkout/paypal' => 'orders#paypal_express', :as => 'checkout'
get 'checkout/paypal/go' => 'orders#create_payment', :as => 'go_paypal'

注文管理者

#controllers/orders_controller.rb
class OrdersController < ApplicationController

    #Paypal Express
    def paypal_express
        response = EXPRESS_GATEWAY.setup_purchase(total,
          :items => cart_session.build_order, #this is where you create the hash of items
          :subtotal => subtotal,
          :shipping => 50,
          :handling => 0,
          :tax => 0,
          :return_url => url_for(:action => 'create_payment'),
          :cancel_return_url => url_for(:controller => 'cart', :action => 'index')
        )
        redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)
    end
#some other stuff is here....
end

ビルドアイテム

#models/cart_session.rb (we use this with a cart)
    #Build Hash For ActiveMerchant
    def build_order

        #Take cart objects & add them to items hash
        products = cart_contents

        @order = []
        products.each do |product|
            @order << {name: product[0].name, quantity: product[1]["qty"], amount: (product[0].price * 100).to_i }
        end

        return @order

    end
end
于 2013-10-11T10:57:59.207 に答える