2016-03-21 10 views
1

Ich habe das PayPal Mobile SDK installiert und in meiner iOS App verwendet. Ich verarbeite eine einzelne Zahlung über die App und gebe dann das PayPal-Bestätigungs-Nachbestell-Wörterbuch zur Bestätigung an meinen Server weiter (wie von PayPal angewiesen)PayPal REST API - 'Ein interner Dienst Fehler ist aufgetreten'

Wenn ich jedoch versuche, den Verkauf auf dem Server zu bestätigen, erhalte ich ' Ein interner Dienstfehler ist aufgetreten '. Hier

ist die PayPal Bestätigung JSON:

"paypalConfirmation" : { 
"response" : { 
    "id" : "APAYPALSALECONFIRMATIONID", 
    "state" : "approved", 
    "create_time" : "2016-03-21T15:18:36Z", 
    "intent" : "sale" 
}, 
"client" : { 
    "environment" : "mock", 
    "product_name" : "PayPal iOS SDK", 
    "paypal_sdk_version" : "2.14.0", 
    "platform" : "iOS" 
}, 
"response_type" : "payment" 
} 

Dies ist der node.js Code auf meinem Server:

//I am using the PayPal Node.js SDK 
paypal.sale.get("APAYPALSALECONFIRMATIONID", function (error, sale) { 


    if (error) { 

     console.log(error); 
     context.fail('There was an error confirming the payment'); 

    } else { 


     console.log('Verifying sale...'); 
     compareSaleWithPost(order, sale, context); 


    } 


}); 

Hier wird der Fehler:

{ [Error: Response Status : 500] 
response: 
{ name: 'INTERNAL_SERVICE_ERROR', 
message: 'An internal service error has occurred', 
information_link: 'https://developer.paypal.com/docs/a/#INTERNAL_SERVICE_ERROR', 
debug_id: '***********', 
httpStatusCode: 500 }, 
httpStatusCode: 500 } 

Ich bin mir bewusst, dass es andere Fragen zu diesem Fehler gibt, aber sie beziehen sich auf Kreditkartenzahlungen und Probleme mit ihren Nummern oder negativen Testeinstellungen.

Ich habe negative Tests deaktiviert und dies ist für ein PayPal-Konto Transaktion keine Kreditkarte eine. Ich verwende SANDBOX Modus

+0

Vielleicht ist es in der Tat ein interner Fehler an ihrem Ende, das später gelöst werden? –

+1

Auf der Paypal-Statusseite wird nichts erwähnt, was Sandbox betrifft. Ich lehne mich dem Fehler zu, der auf meiner Seite nur nicht sicher ist, was – Zigglzworth

Antwort

0

Es stellt sich heraus, dass ich die falsche Anfrage verwendet habe. Ich hätte paypal.payment.get anstelle von paypal.sale.get verwenden sollen. Wie so:

paypal.payment.get("APAYPALSALECONFIRMATIONID", function (error, payment) { 


    if (error) { 

     console.log(error); 
     context.fail('There was an error confirming the payment'); 

    } else { 


     console.log('Verifying payment...'); 
     compareSaleWithPost(order, payment, context); 


    } 
} 
Verwandte Themen