2016-12-21 3 views
2

I Karte von Streifen zu löschen versuche mit diesem Code:Benutzerkarte aus Streifen Android löschen

ersten Versuch:

com.stripe.Stripe.apiKey = getString(R.string.stripe_test_secret_key); 
com.stripe.model.Token token = com.stripe.model.Token.retrieve(CardId); 
String cardId = token.getCard().getId(); 
customer = Customer.retrieve(payments.appPreference.getStripeCustomerId()); 
DeletedExternalAccount delete = customer.getSources().retrieve(cardId).delete(); 

Fehler: Ich erhalte com.stripe.exception .InvalidRequestException: Keine solche Quelle: card_xxxxxxxxxxxxxxxxxxxxxx; Anfrage-ID: req_xxxxxxxxxxxx

zweiter Versuch:

com.stripe.Stripe.apiKey = getString(R.string.stripe_test_secret_key);  
com.stripe.model.Token token = com.stripe.model.Token.retrieve(CardId); 
DeletedCard delete = token.getCard().delete(); 

Fehler: com.stripe.exception.APIConnectionException: IOException während API-Anfrage an Stripe (https://api.stripe.com): null Bitte überprüfen Sie Ihre Internetverbindung und versuche es erneut. Wenn das Problem weiterhin besteht, sollten Sie den Dienststatus von Stripe unter https://twitter.com/stripestatus überprüfen oder uns unter [email protected] informieren.

Verursacht durch: java.net.MalformedURLException

Kann mir jemand helfen, dieses Problem zu lösen?

Antwort

0

@koopajah hat Recht. Es ist nicht sicher von der mobilen Seite.

Es passiert, weil ich Token erstellt habe, aber nicht API für die Erstellung der Karte aufgerufen. Token hatte ein Card-Objekt, aber es wurde keinem Client zugewiesen. Also, ich habe diesen Fehler bekommen.

1

Es ist nicht möglich, dies in Ihrer Android-Anwendung zu tun, da diese Aufrufe Ihren Secret-API-Schlüssel erfordern. Sie sollten niemals den geheimen API-Schlüssel in Ihrer Android-Anwendung haben, sonst könnte ein Angreifer sie in die Hände bekommen und dann Gebühren, Rückerstattungen oder Übertragungen in Ihrem Namen erstellen.

Was Sie hier tun müssen, ist diese Code-Server-Seite. Sie rufen die Karte zum Löschen [API] [1] auf und stellen sicher, dass Sie die korrekte Kunden- und Karten-ID in Ihrem Code übergeben. In Java, aber Server-Seite, würden Sie tun:

Customer customer = Customer.retrieve("cus_XXXXXXX"); 
customer.getSources().retrieve("card_YYYYYY").delete(); 
+0

Ich weiß es ist nicht sicher von der mobilen Seite. Aber ich möchte wissen, warum es nicht funktioniert. Ich versuche, eine korrekte Kundennummer und Karten-ID (von Token) zu verwenden, aber ich bekomme einen Fehler. – SANAT

+1

@SANAT: die Karte, wenn aus dem Token nicht funktionieren würde. Sie möchten die Karten-ID * auf dem Kunden * gespeichert haben, die Sie über die API oder das Dashboard abrufen können. – koopajah

Verwandte Themen