mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 01:46 Benutzername: Passwort: Auto-Login

Thema: [PayPal API] - Kunde verfügt nicht über die nötigen Mittel vom 14.10.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PayPal API] - Kunde verfügt nicht über die nötigen Mittel
Seite: 1, 2  Weiter
Autor Nachricht
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 14.10.2010 17:25
Titel

[PayPal API] - Kunde verfügt nicht über die nötigen Mittel

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ich habe mich in den letzten Tagen immer mal wieder mit der PayPal API beschäftigt.
Jetzt bin ich soweit das ich einen kompletten Zahlungsvorgang über die Sandbox teste.

Dazu zählt der Express Kauf wie auch der Kauf über GiroPay.

Bis jetzt liefen alle Test gut und ich habe keine Fehler zurückbekommen.

So beim letzten Test, war das allerdings nicht mehr so.
Und zwar für den Fall das der Käufer nicht über die nötigen Mittel verfügt das Produkt oder die Produkte zu kaufen.

In der Doku der API steht das für diesen Fall die CANCELURL zuständig ist.

Diese bilde ich wie folgt.

Code:
cancelURL = url & "warenkorb.asp?paymentType=" & paymentType & "&KundenNrCancel=" & KundenNr & "&CancelPP=1"


Die CANCELURL wird für diesen Fall benötigt wie auch bei Abbruch der Zahlung über PayPal.

Wenn ich den Zahlungsvorgang abbreche, greift diese URL auch und ich kann mittels meiner Parameter den Kunden andere Zahlungsmöglichkeiten zur Verfügung stellen.

Verfügt er allerdings nicht über die Mittel, dann erhalte ich folgende Fehlermeldung

Zitat:

AssertionException:TArray index out of bounds Backtrace:PPException::PPException(
String const &
)
throw_assertion_exception(
char const *
)
FundingMix::PimpFundingMixInfraBLIImpl::internal_select_best_elv_plan(
TArray const &,
unsigned long long &,
WUser const *,
unsigned long long,
PimpTransaction const *,
PimpMerchantPullBA const *
)
FundingMix::PimpFundingMixInfraBLIImpl::internal_transaction_useruser_get_default_funding_source_for_amount(
WUser const *,
PimpTransaction const *,
unsigned long long,
PimpTemporarilyDisabledFundingSources const &,
WS_XCLICK_WEB_ACCEPT_TYPE,
long const *,
long *,
FurtherFundingTypesInfo *,
WPaymentFlow *,
unsigned long long, WPaymentFlowElv *,
PimpAuctionRiskInfo const *,
PimpShippingPaymentParams const *,
PimpMerchantPullBA const *,
PimpRiskVarsAdjustment const *,
Currency const &,
FundingMix::FundingRequestVO const &,
FundingMix::FundingResponseVO &,
Risk::GuestAcctMatchDataVO const *,
bool
)
FinancialInstrument::FundingSourceALIImpl::internal_obtain_default_funding_plan(
WUser *,
PimpTransaction *,
unsigned long long,
WPaymentFlow *,
unsigned long long,
WPaymentFlowElv *,
bool,
WS_XCLICK_WEB_ACCEPT_TYPE,
PimpShippingPaymentParams *,
String const *,
PimpXClick const *,
PimpPieGCPurchase *,
FinancialInstrument::FundingSourceALI::FundingSourceAnalysis *,
PimpAuctionRiskInfo const *,
PimpTemporarilyDisabledFundingSources const *,
long const *,
long *,
PimpPaymentParamsSkype *,
FundingMix::FundingRequestVO const &,
FundingMix::FundingResponseVO &,
Risk::GuestAcctMatchDataVO const *
)
FinancialInstrument::FundingSourceALIImpl::main_obtain_default_funding_plan(
WUser *,
PimpTransaction *,
unsigned long long,
WPaymentFlow *,
unsigned long long,
bool,
WS_XCLICK_WEB_ACCEPT_TYPE,
PimpShippingPaymentParams *,
String const *,
PimpXClick const *,
PimpPieGCPurchase *,
FinancialInstrument::FundingSourceALI::FundingSourceAnalysis *,
PimpAuctionRiskInfo const *,
PimpTemporarilyDisabledFundingSources const *,
long const *,
long *,
PimpPaymentParamsSkype *,
FundingMix::FundingRequestVO const &,
FundingMix::FundingResponseVO &,
Risk::GuestAcctMatchDataVO const *
)
FinancialInstrument::FundingSourceALIImpl::ObtainDefaultFundingPlan(
WUser *,
PimpTransaction *,
unsigned long long,
WPaymentFlow *,
unsigned long long,
bool,
WS_XCLICK_WEB_ACCEPT_TYPE,
PimpShippingPaymentParams *,
String const *,
PimpXClick const *,
PimpPieGCPurchase *,
FinancialInstrument::FundingSourceALI::FundingSourceAnalysis *,
PimpAuctionRiskInfo const *,
PimpTemporarilyDisabledFundingSources const *,
long const *,
long *,
PimpPaymentParamsSkype *,
FundingMix::FundingRequestVO const &,
FundingMix::FundingResponseVO &,
Risk::GuestAcctMatchDataVO const *
)
Merchant::Payment::HostedPaymentsALIImpl::obtain_default_funding_plan(
WUser *,
PimpTransaction &,
unsigned long long,
WPaymentFlow *,
unsigned long long,
String const *,
WS_XCLICK_WEB_ACCEPT_TYPE,
bool *,
PimpXClick const *,
PimpTemporarilyDisabledFundingSources const *,
long const *,
FundingMix::FundingRequestVO,
FMXFlowContainer &,
Risk::GuestAcctMatchDataVO const *
) transaction_analyze_wallet__Q26Rapids14BusinessBlocksRC25PayPalCommonWebAppContextRUxT2R10PimpXClickR15PimpTransactionRbRC25FlowInfoUbiquityContainerRC31TaxAndShippingUbiquityContainerR24FundingUbiquityContainerR28TransactionUbiquityContainerPC18PimpReceivingPrefsPbPC37PimpTemporarilyDisabledFundingSourcesPC21MiscUbiquityContainerPC19WalletInfoContainerP17FundingChangeInfoPt6TArray1Z11PimpAddressbT12_RCbN220_ Rapids::Flows::Unity::StateUnityEC_AnalyzeTransaction::execute(
Rapids::CGIVars const &
)
Rapids::DecoratedState::execute(
Rapids::CGIVars const &
)
Riprap::RiprapRapidsGenericFlow::flow_continue_post(
Riprap::WebAppContextOrnate const &,
Riprap::DispatchInterceptorRegistry const &
)
Riprap::call_rapids(
Riprap::WebAppContext const &,
Riprap::RapidsFlowFactory const &,
Riprap::DispatchAction const &,
Riprap::WebAppReturn const &,
String const &,
Riprap::DispatchInterceptorRegistry const &
)
Riprap::dispatch_loop(
Riprap::EPRegistry const &,
Riprap::WebAppContext const &,
Riprap::DispatchAction &,
Riprap::WebAppReturn &,
String const &,
Riprap::DispatchInterceptorRegistry const &
)
Riprap::dispatch_wrapper(
OutputStream &,
Riprap::EPRegistry const &,
Riprap::WebAppContext const &,
Riprap::WebAppReturn const &,
String const &,
bool const &,
Riprap::DispatchInterceptorRegistry const &
)
gcc2_compiled. main


Jetzt ist meine Frage ob das generell ein Problem der Sandbox ist, oder ob ich etwas übersehen habe.
Die Doku gibt hier leider nicht mehr her.

Kennt sich jemand mit der PayPal API aus und kennt diesen Fehler evtl?
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 14.10.2010 17:32
Titel

Antworten mit Zitat Zum Seitenanfang

Ich hab kürzlich erst 'n ExpressKauf Ablauf in eine Anwendung eingebaut - dabei hatte ich es so verstanden, dass die CancelUrl ausschließlich dazu da ist, zum Shop zurückzukehren. D.h. selbst, wenn der Bezahlvorgang innerhalb der PayPal-Welt fehlschlägt, siehst Du das Resultat auch innerhalb der Paypal-Welt und musst als User dann nochmal explizit "Klicken Sie hier, um zum Shop von xy zurückzukehren" anklicken muss. Davon ausgenommen asynchrone Bezahlvorgänge (GiroPay und Banküberweisung), die kannst Du ausschließlich via IPN abfrühstücken, womit das ganze wirklich hässliche Dimensionen annimmt.
Ich hab' mich jetzt nicht durch den Stacktrace da gewühlt, aber das ist doch eine Ausnahme Deiner eigenen Anwendung - somit glaube ich nicht, dass PayPal damit irgend was am Hut hat...


//Quatsch, sorry. Das ist ne Exception aus der Sandbox, oder? Naja, ändert ja nix - du hast, so habe ich es verstanden, innerhalb Deiner Anwendung nix mit der Validierung zu tun (außer eben, einen gültigen Endpunkt bereitzustellen, auf den CancelUrl zeigt...)


Zuletzt bearbeitet von bacon am Do 14.10.2010 17:36, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 14.10.2010 17:35
Titel

Antworten mit Zitat Zum Seitenanfang

Grob übersetzt aus der Doku zu CancelURL

Zitat:
CANCELURL
Die Adresse auf Ihrer Website, an die PayPal den Kunden weiterleitet, falls der Kunde über keine ausreichenden Mittel verfügt oder sich gegen eine Zahlung über PayPal entscheidet. Diese Adresse sollte der Seite auf Ihrer Website entsprechen, von welcher der Kunde erstmals zu PayPal geleitet wurde.


Das ist ja für mich eindeutig.

PayPAl meldet ja gleichzeitig auch, 'Seite nicht gefunden'
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 14.10.2010 17:37
Titel

Antworten mit Zitat Zum Seitenanfang

Das ist in jedem Falle ein stinknormaler Redirect - das ist lange nicht so magisch, wie es aussieht. Ich hatte da einfach wieder 'n Link auf den Warenkorb eingebaut... Soweit ich weiß, prüft Paypal keinesfalls vorab, ob CancelURL tatsächlich da ist oder nicht.

Zuletzt bearbeitet von bacon am Do 14.10.2010 17:38, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 14.10.2010 17:47
Titel

Antworten mit Zitat Zum Seitenanfang

Ja dann finde ich aber nirgendwo eine Erklärung wie das zu Prüfen ist.

Evtl über den Parameter ACK. entweder Success oder Error

Mein Script schaut so aus

Also der Aufruf der API bzw weiterleitung zum Bezahlvorgang.

Code:
<!-- #include virtual = "/inc/db_open.asp" -->
<!-- #include virtual ="/warenkorb2/**.asp" -->
<%
On Error Resume Next
PAYPAL_URL    = PAYPAL_EC_URL

Dim gv_APIUserName
Dim gv_APIPassword
Dim gv_APISignature
Dim gv_Version
Dim gv_SUBJECT

gv_APIUserName  = API_USERNAME
gv_APIPassword    = API_PASSWORD
gv_APISignature = API_SIGNATURE
gv_Version        = API_VERSION
gv_SUBJECT      = SUBJECT
     
If  Request.QueryString("token") = "" Then
    If Session("KundenNr") = "" then
        response.redirect "warenkorb-session-out.asp"
    End If
    KundenNr = Session("KundenNr")
   
    SQL = "SELECT * FROM Ersatzteiladressen WHERE ID = '" & KundenNr & "'"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open SQL, db, 3, 3
   
    If rs.recordcount > 0 then
        'Warenkorb sperren.
        rs.update
            rs("ErrorDesc") = "Warenkorb gesperrt"
        rs.update
    End If
   
    Session.Abandon
   
    dim anz
   
    SQL1 = "SELECT * FROM Warenkorb WHERE KndNr = '" & KundenNr & "'"
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    rs1.open SQL1, db, 3, 3
   
    z = 0
   
    do while not rs1.eof
        z = z + 1
        rs1.movenext
    loop
   
    rs1.close
   
    anz = z - 1
   
    dim L_NAME
    ReDim L_NAME(anz)
   
    dim L_NUMBER
    ReDim L_NUMBER(anz)
   
    dim L_DESC
    ReDim L_DESC(anz)
   
    dim L_AMT
    ReDim L_AMT(anz)
   
    dim L_QTY
    ReDim L_QTY(anz)
   
    SQL2 = "SELECT * FROM Warenkorb WHERE KndNr = '" & KundenNr & "'"
    Set rs2 = Server.CreateObject("ADODB.Recordset")
    rs2.open SQL2, db, 3, 3
   
    i = 0
   
    do while not rs2.eof
        SQL3 = "SELECT * FROM Ersatzteil WHERE ID = '" & rs2("ErsatzteilID") & "'"
        set rs3 = Server.CreateObject("ADODB.Recordset")
        rs3.open SQL3, db, 3, 3
       
        do while not rs3.eof
            L_NAME(i) = rs3("Bezeichnung")
            L_NUMBER(i) = rs3("FUNErsatzteil")
            L_DESC(i) = rs3("Bezeichnung")
           
            dim erg
            If rs2("anz") > 1 then
                If len(rs3("LVP"))>0 then
                    erg = rs3("LVP")*1.19
                    show2 = formatnumber(rs3("LVP")*1.19,2)
                    L_AMT(i) = CCur(show2)
                End If
            Else
                if len(rs3("LVP"))>0 then
                    erg = rs3("LVP")*1.19
                    show2 = formatnumber(rs3("LVP")*1.19,2)
                    L_AMT(i) = CCur(show2)
                end if
            End If
            L_QTY(i) = rs2("anz")
            rs3.movenext
        loop
        i = i + 1
        rs2.movenext
    loop
   
    url = GetURL()
    currencyCodeType = Request.querystring("currencyCodeType")
       
    paymentType = Request.querystring("paymentType")
       
    NAME = Request.Form("NAME")
    SHIPTOSTREET = Request.Form("SHIPTOSTREET")
    SHIPTOCITY = Request.Form("SHIPTOCITY")
    SHIPTOSTATE = Request.Form("SHIPTOSTATE")
    SHIPTOCOUNTRYCODE = Request.Form("SHIPTOCOUNTRYCODE")
    SHIPTOZIP = Request.Form("SHIPTOZIP")
       
    TAXAMT = "0.00" 'Steuer
    SHIPDISCAMT = "0.00" 'Versandrabatt
    SHIPPINGAMT = "5.00" 'Versandkosten
       
    INSURANCEOPTIONOFFERED = "true"
    INSURANCEAMT = "0.00" 'Versicherung
       
    ADDRESSOVERRIDE = "1"
   
    dim ft,amt,maxamt
   
    For i = 0 to anz Step 1
        ft = ft + (L_QTY(i) * L_AMT(i))
    Next
   
    amt = Round(ft + 5.00 + 0.00 + 0.00, 2)
   
    maxamt = Round(amt + 25.00, 2)
   
    rs2.close
    rs3.close
   
    'URLs setzen
   
    returnURL = url & "**.asp?currencyCodeType=" &  currencyCodeType & "&paymentAmount=" & amt & "&paymentType=" & paymentType & "&KundenNr=" & KundenNr & "&anzahl=" & anz
    cancelURL = url & "warenkorb.asp?paymentType=" & paymentType & "&KundenNrCancel=" & KundenNr & "&CancelPP=1"
   
    nvpstr    =             "&" & Server.URLEncode("ADDRESSOVERRIDE") & "=" & Server.URLEncode(ADDRESSOVERRIDE) & _
                        "&" & Server.URLEncode("SHIPTONAME") & "=" & Server.URLEncode(NAME) & _
                        "&" & Server.URLEncode("SHIPTOSTREET") & "=" & Server.URLEncode(SHIPTOSTREET) & _
                        "&" & Server.URLEncode("SHIPTOCITY") & "=" & Server.URLEncode(SHIPTOCITY) & _
                        "&" & Server.URLEncode("SHIPTOSTATE") & "=" & Server.URLEncode(SHIPTOSTATE) & _
                        "&" & Server.URLEncode("SHIPTOCOUNTRYCODE") & "=" & Server.URLEncode(SHIPTOCOUNTRYCODE) & _
                        "&" & Server.URLEncode("SHIPTOZIP") & "=" & Server.URLEncode(SHIPTOZIP)
       
    For i = 0 to anz Step 1
        nvpstr = nvpstr & "&" & Server.URLEncode("L_NAME" & i) & "=" & Server.URLEncode(L_NAME(i))
    Next
   
    For i = 0 to anz Step 1
        nvpstr = nvpstr & "&" & Server.URLEncode("L_AMT" & i) & "=" & Server.URLEncode(replace(L_AMT(i),",","."))
    Next
   
    For i = 0 to anz Step 1
        nvpstr    = nvpstr &    "&" & Server.URLEncode("L_QTY" & i) & "=" & Server.URLEncode(L_QTY(i))
    Next
   
    nvpstr    = nvpstr &    "&" & Server.URLEncode("MAXAMT") & "=" & Server.URLEncode(replace(maxamt,",",".")) & _
                        "&" & Server.URLEncode("AMT") & "=" & Server.URLEncode(replace(amt,",",".")) & _
                        "&" & Server.URLEncode("ITEMAMT") & "=" & Server.URLEncode(replace(ft,",","."))

    nvpstr    = nvpstr &    "&" & Server.URLEncode("INSURANCEAMT") & "=" & Server.URLEncode(INSURANCEAMT) & _
                        "&" & Server.URLEncode("INSURANCEOPTIONOFFERED") & "=" & Server.URLEncode(INSURANCEOPTIONOFFERED)
   
    nvpstr    = nvpstr &    "&" & Server.URLEncode("SHIPPINGAMT") & "=" & Server.URLEncode(SHIPPINGAMT) & _
                        "&" & Server.URLEncode("SHIPDISCAMT") & "=" & Server.URLEncode(SHIPDISCAMT) & _
                        "&" & Server.URLEncode("TAXAMT") & "=" & Server.URLEncode(TAXAMT)
                       
    For i = 0 to anz Step 1
        nvpstr = nvpstr & "&" & Server.URLEncode("L_NUMBER" & i) & "=" & Server.URLEncode(L_NUMBER(i))
    Next
   
    For i = 0 to anz Step 1
        nvpstr = nvpstr & "&" & Server.URLEncode("L_DESC" & i) & "=" & Server.URLEncode(L_DESC(i))
    Next
   
    nvpstr    = nvpstr &    "&" & server.URLEncode("RETURNURL") & "=" & Server.URLEncode(returnURL) & _
                        "&" & Server.URLEncode("CANCELURL") & "=" &Server.URLEncode(cancelURL) & _
                        "&" & server.UrlEncode("CURRENCYCODE") & "=" & Server.URLEncode(currencyCodeType) & _
                        "&" & Server.URLEncode("PAYMENTACTION") & "=" & Server.URLEncode(paymentType) & _
                        "&" & Server.URLEncode("KundenNr") & "=" & KundenNr
   
    If IsEmpty(gv_SUBJECT) Then
        nvpStr = nvpstr &    "&USER=" & gv_APIUserName &_
                            "&PWD=" & gv_APIPassword &_
                            "&SIGNATURE=" & gv_APISignature &_
                            "&VERSION=" & gv_Version
    ElseIf IsEmpty(gv_APIUserName )and IsEmpty(gv_APIPassword) and IsEmpty(gv_APISignature) Then
        nvpStr = nvpstr &    "&SUBJECT=" & gv_SUBJECT &_
                            "&VERSION=" & gv_Version
    Else
        nvpStr = nvpstr &    "&USER=" & gv_APIUserName &_
                            "&PWD=" & gv_APIPassword &_
                            "&SIGNATURE=" & gv_APISignature &_
                            "&VERSION=" & gv_Version &_
                            "&SUBJECT=" & gv_SUBJECT
    End If

    Set resArray = hash_call("SetExpressCheckout",nvpstr)
    Set SESSION("nvpResArray") = resArray
    ack = UCase(resArray("ACK"))
    response.Write(ack)

    If ack = "SUCCESS" Then
        'weiter zu PP
        token = resArray("TOKEN")
        payPalURL = PAYPAL_URL & "?cmd=_express-checkout&token=" & token & "&KundenNr=" & KundenNr
        ReDirectURL(payPalURL)
    Else 
        message = "PayPal API gibt fehler zurueck!"
        SESSION("msg") = message
        Set SESSION("nvpErrorResArray") = resArray
        Response.Redirect "APIError.asp"
    End If
Else
    SESSION("KundenNr") = Request.Querystring("KundenNr")
    SESSION("Anzahl") = Request.Querystring("anzahl")
    SESSION("token") = Request.Querystring("TOKEN")
    SESSION("currencyCodeType") = Request.Querystring("currencyCodeType")
    SESSION("paymentAmount") = replace(Request.Querystring("paymentAmount"),",",".")
    SESSION("PaymentType")= Request.Querystring("PaymentType")
    SESSION("PayerID")= Request.Querystring("PayerID")
    SESSION("ITEMAMT")= Request.Querystring("ITEMAMT")

    nvpstr =     "&TOKEN="&Request.Querystring("TOKEN")& _
                "&" &Server.URLEncode("PAYMENTACTION")&"=" & Server.URLEncode(paymentType)
     
    If IsEmpty(gv_SUBJECT) Then
        nvpStr = nvpstr &     "&USER=" & gv_APIUserName &_
                            "&PWD=" & gv_APIPassword &_
                            "&SIGNATURE=" & gv_APISignature &_
                            "&VERSION=" & gv_Version
    ElseIf IsEmpty(gv_APIUserName )and IsEmpty(gv_APIPassword) and IsEmpty(gv_APISignature) Then
        nvpStr = nvpstr &   "&SUBJECT=" & gv_SUBJECT &_
                            "&VERSION=" & gv_Version
    Else
        nvpStr = nvpstr &    "&USER=" & gv_APIUserName &_
                            "&PWD=" & gv_APIPassword &_
                            "&SIGNATURE=" & gv_APISignature &_
                            "&VERSION=" & gv_Version &_
                            "&SUBJECT=" & gv_SUBJECT
    End If
   
    Set resArray = hash_call("GetExpressCheckoutDetails",nvpstr)
    ack = UCase(resArray("ACK"))
    Set SESSION("nvpResArray")=resArray
   
    If UCase(ack) = "SUCCESS" Then
        Response.Redirect "warenkorb-abschluss.asp?pp=1&KundenNr=" & SESSION("KundenNr") & "&Anzahl=" & SESSION("Anzahl")
    Else 
        SESSION("msg") = "Review Order.PayPal API gibt einen Fehler zurueck!"
        Set SESSION("nvpErrorResArray")=resArray
        Response.Redirect "APIError.asp"
    End If   
End If
If Err.Number <> 0 Then
    SESSION("ErrorMessage")    = ErrorFormatter(Err.Description,Err.Number,Err.Source,"**.asp")
    Response.Redirect "APIError.asp"
Else
    SESSION("ErrorMessage")    = Null
End If
%>
<!--#include virtual="/inc/db_close.asp" -->


Zuletzt bearbeitet von Kash am Fr 15.10.2010 09:11, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 14.10.2010 17:52
Titel

Antworten mit Zitat Zum Seitenanfang

Ich hampel mich jetzt mal nicht durch Deinen Code. Wenn der Fehler dieser ist (Auszugsweise):

Code:

Wenn Sie einen Einkauf tätigen oder eine Zahlung senden wollten, prüfen Sie in ca. 30 Minuten Ihr PayPal-Konto und Ihren E-Mail-Posteingang auf Erhalt einer Transaktionsbestätigung.

Wenn Sie von einer anderen Website auf diese Seite gelangt sind, kehren Sie bitte zu dieser Website zurück (verwenden Sie dazu nicht die Browser-Schaltfläche "Zurück"), und starten Sie die Aktion erneut.

Wenn Sie von der PayPal-Website auf diese Seite gelangt sind, klicken Sie oben links auf das PayPal-Logo, um zur Startseite zurückzukehren und die Aktion erneut zu starten. Ggf. müssen Sie sich erneut einloggen.

AssertionException: TArray index out of bounds Backtrace: PPException::PPException(String const &) throw_assertion_exception(char const *) FundingMix::PimpFundingMixInfraBLIImpl::internal_select_best_elv_plan(TArray const &, unsigned long long &, WUser const *, unsigned long long, PimpTransaction const *, PimpMerchantPullBA const *)

[...]



... dann gewöhn Dich dran, die Sandbox kackt auch häufiger mal ab. Versuch's in ein paar Minuten oder morgen nochmal, oder leere mal die Browsersession und fang komplett von vorne an.

Das gleiche ist mir nämlich in meiner Sandbox gerade auch um die Ohren geflogen, und nicht zum ersten mal. Das lässt sich auch nicht abfangen oder testen (warum auch?). Sandbox != Produktivumgebung, die Sandbox ist zwar recht nah dran, aber nicht bis ins letzte Detail. Das wird Dich erst recht ärgern, wenn Du 'ne Banküberweisung testen möchtest... geht nämlich nicht.
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 14.10.2010 17:55
Titel

Antworten mit Zitat Zum Seitenanfang

Ich möchte mich ja nur absichern. Ich kann unmöglich dem Kunden etwas liefern, was dem EndKunden vom Ihm solche Meldungen ausspuckt.

Aber ok, ich teste das morgen nochmal. Für heute kann es mich mal gerne haben.

Die Punkte die Du aufgeführt hast, teste ich dann auch noch.
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 14.10.2010 18:00
Titel

Antworten mit Zitat Zum Seitenanfang

Hm Du wirst tatsächlich nicht umhin kommen, das Ding auch in der Produktivumgebung nochmal zu testen - ist leider nunmal ne nervraubende Kiste. Ich hab' da recht lange dran gesessen, bis es einigermaßen klappte.

Hör mal, rein interessehalber: Wie hast Du denn die Absicherung der Kauf-Protokollierung intern gelöst, also das, was bei Dir in die Datenbank geschrieben wird, nachdem in Paypal bezahlt wurde? - ohne, dass irgend ein Angreifer nochmal *vor* dem Abschicken der Bestellung den Warenkorb manipuliert?
  View user's profile Private Nachricht senden
 
Ähnliche Themen cd shop mit paypal?
PayPal-Einbindung
xt:commerce und paypal
Returnlink von paypal verstecken?
Spenden Button (PayPal)
PayPal IPN - Ws kommt in notify_url?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.