Stripe Android - Response 200, но не в приборной панели - PullRequest
0 голосов
/ 26 апреля 2018

Итак, я встроил Stripe в свое приложение для iOS, и он отлично работает, он обрабатывает платеж, и они отображаются на панели инструментов.

Но, к сожалению, в моем приложении для Android, несмотря на то, что я получил ответ 200, заряд былУспешно, платежи не отображаются на моей панели.

Я использую okhttp, чтобы опубликовать платеж.Я совершенно сбит с толку, так как если что-то пойдет не так, он не вернется 200.

public void placeOrder(View view) {
        Stripe stripe = new Stripe(getApplicationContext(), "pk_test_...");
        stripe.createToken(
                paymentCard,
                new TokenCallback() {
                    public void onSuccess(Token token) {
                        // Send token to your server
                        tok = token;
                        new StripeCharge(token.getId()).execute();
                    }
                    public void onError(Exception error) {
                        // Show localized error message
                        Toast.makeText(getApplicationContext(),
                                error.getLocalizedMessage(),
                                Toast.LENGTH_LONG
                        ).show();
                    }
                }
        );
    }


public class StripeCharge extends AsyncTask<String, Void, String> {
        String token;

        public StripeCharge(String token) {
            this.token = token;
        }

        @Override
        protected String doInBackground(String... params) {
            new Thread() {
                @Override
                public void run() {
                    postData(token);
                }
            }.start();
            return "Done";
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Log.e("Result",s);
        }
    }

    public void postData(String mToken) {

        FormBody.Builder formBuilder = new FormBody.Builder()
                .add("amount", "15000")
                .add("currency", "gbp")
                .add("token", mToken)
                .add("shipping", "Road")
                .add("receipt_email", "test@test.com")
                .add("description", "Purchased from Android");

        RequestBody formBody = formBuilder.build();

        Request request = new Request.Builder().url(Server.ENDPOINT + "/charge")
                .post(formBody)
                .build();

        Server.getHttpClient().newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                switch (response.code()) {
                    case 200:
                        JsonObject result = new JsonParser().parse(response.body().string()).getAsJsonObject();
                        response.body().close();

                        break;
                }
            }
        });
    }
...