Question

Je reçois l'erreur #10400 (total de la Commande est manquant), mais je suis pas sûr de ce que je suis sortant.Tout semble être le traitement correctement.C'est là que le paiement est de l'installation:

def setcheckout
    api = PayPal::SDK::Merchant::API.new


    @set_express_checkout = api.build_set_express_checkout(params[:SetExpressCheckoutRequestType])

    # Find Item Total and Order Total
    details = @set_express_checkout.SetExpressCheckoutRequestDetails
    pay = details.PaymentDetails[0]

    pay.PaymentDetailsItem[0].Name = 'Item'
    pay.PaymentDetailsItem[0].Amount = 1
    pay.PaymentDetailsItem[0].Quantity = 1

    pay.ItemTotal  = pay.PaymentDetailsItem[0].Amount
    pay.OrderTotal.currencyID = pay.ItemTotal.currencyID
    pay.OrderTotal.value = pay.ItemTotal.value.to_f

    # Notify url
    #pay.NotifyURL ||= ipn_notify_url

    # Return and cancel url
    details.ReturnURL ||= 'http://localhost:3000/confirm'
    details.CancelURL ||= 'http://localhost:3000/failed'

    @set_express_checkout_response = api.set_express_checkout(@set_express_checkout)


    if @set_express_checkout_response.success?
      redirect_to "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=#{@set_express_checkout_response.Token}"
    end
end

Cela me prend à paypal, authentifie l'utilisateur, et retourne à l'url de confirmation comme prévu.Qui ressemble à ceci:

def confirm
    session[:token]   = params[:token]    if params[:token]
    session[:PayerID] = params[:PayerID]  if params[:PayerID]

    api = PayPal::SDK::Merchant::API.new
    @do_express_checkout_payment = api.build_do_express_checkout_payment(params[:DoExpressCheckoutPaymentRequestType])
    details = @do_express_checkout_payment.DoExpressCheckoutPaymentRequestDetails
    details.Token   = session[:token]
    details.PayerID = session[:PayerID]
    #details.PaymentDetails[0].NotifyURL ||= ipn_notify_url
    @do_express_checkout_payment_response = api.do_express_checkout_payment(@do_express_checkout_payment) if request.post?
end

Une fois le "Confirmer et Payer" clique sur le bouton et le ci-dessus est affiché, l'opération échoue avec un 10400 Order total is missing. erreur.Il me semble que j'ai précisé que le total de la commande ci-dessus, et le total est affiché lorsque je suis pris à paypal.Ce qui me manque?

Était-ce utile?

La solution

Je ne vois pas le total de l'envoi de votre DoExpressCheckoutPayment demande..??Vous devez inclure ces mêmes détails dans DECP que vous faites dans la SEC.

À partir de la version 112.0 ils ont introduit la USESESSIONPAYMENTDETAILS paramètre, qui est censée permettre de dire DECP simplement utiliser ce que vous avez envoyé à la SEC si vous attribuez la valeur true ou 1.Il semble y avoir une divergence quant à savoir si ou non cela fonctionne, cependant.Je n'ai pas encore tester par moi même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top