2013-10-08 7 views
6

Nie widzę tego konkretnego błędu opisanego w API pasków w dowolnym miejscu. Ktoś wie, co się dzieje?Dlaczego Stripe.com zwraca błąd (402) Wymagana jest płatność?

Oto mój kod VB.net stworzyć klientów:

Function CreateStripeCustomer(ByVal Token As String) As String 
    '' The Stripe Account API Token - change this for testing 
    Dim STR_Stripe_API_Token As String = "sk_test_SECRET_TEST_KEY" '<-- test secret key. Change to live later. 
    ''The Stripe API URL 
    Dim STR_Stripe_API_URL As String = "https://api.stripe.com/v1/customers" 
    ''Creates a Web Client 
    Dim OBJ_Webclient As New System.Net.WebClient() 
    ''Creates Credentials 
    Dim OBJ_Credentials As New System.Net.NetworkCredential(STR_Stripe_API_Token, "MY_STRIPE.COM_PASSWORD") 
    ''Sets the Credentials on the Web Client 
    OBJ_Webclient.Credentials = OBJ_Credentials 
    ''Creates a Transaction with Data that Will be Sent to Stripe 
    Dim OBJ_Transaction As New System.Collections.Specialized.NameValueCollection() 
    OBJ_Transaction.Add("email", "PERFECTLY_VALID_EMAIL") 
    OBJ_Transaction.Add("card", "PERFECTLY VALID TOKEN RETURNED BY STRIPE.JS") 
    ''The Stripe Response String 
    Dim STR_Response As String = Encoding.ASCII.GetString(OBJ_Webclient.UploadValues(STR_Stripe_API_URL, OBJ_Transaction)) 
    Return STR_Response 
End Function 

402 "płatność wymagana" Błąd dzieje się na linii:

Dim STR_Response As String = Encoding.ASCII.GetString(OBJ_Webclient.UploadValues(STR_Stripe_API_URL, OBJ_Transaction)) 

Odpowiedz

5

Cóż, przeszedłem do mojego " LIVE "klucze zamiast moich" TEST "i to naprawiło. Właśnie zmarnowałem 3 godziny mojego życia próbując to naprawić. Mam nadzieję, że to pomoże komuś innemu.

+1

To niefortunne, że formatują odpowiedzi inaczej w różnych środowiskach ... Czy nie ma sensu testowanie bez różnic? No cóż, – Jerad

5

Im bardziej poprawna odpowiedź, musisz użyć odpowiednich numerów kart testowych. Zobacz https://stripe.com/docs/testing

+0

Po jeszcze większej liczbie testów odpowiedź będzie zawierała komunikat błędu (np. Nieprawidłowy numer karty), który można następnie wyświetlić. –

+1

Przejście na używanie karty testowej naprawiło dla mnie ten błąd. Nie możesz testować z prawdziwymi numerami kart. – user3344977

8

Jeśli widzisz to na żywo, możliwe jest również numer karty jest po prostu błędne, np: jeśli kontrolować ciało odpowiedzi 402:

enter image description here

1

Stripe zapewnia środowisko testowe, w którym używasz testu, które można opublikować/tajne klucze, przeciwstawiając się oczekiwaniu na produkcję. Jednak to, co wydaje się być wadą, która w rzeczywistości jest bardzo pomocna, polega na tym, że musisz przestrzegać warunków testowych programu Stripe i użyć podanych numerów kart i danych wejściowych, aby przetestować różne aspekty połączenia api.

Na przykład, aby otrzymać pewne błędy można wprowadzać tych liczb:

card_declined: Use this special card number - 4000000000000002. 
incorrect_number: Use a number that fails the Luhn check, e.g. 4242424242424241. 
invalid_expiry_month: Use an invalid month e.g. 13. 
invalid_expiry_year: Use a year in the past e.g. 1970. 
invalid_cvc: Use a two digit number e.g. 99. 

Więcej informacji można znaleźć w link, który Samir pisał.