Внедрение приложения Google Pay в Android с использованием BlueSnap - PullRequest
2 голосов
/ 09 мая 2019

Я хочу реализовать Google Pay в моем приложении для Android, и я хочу BlueSnap в качестве Google Pay процессора.Я реализовал Google Pay в майском приложении, а также создал BlueSnap учетную запись песочницы.Когда я ввожу данные своей реальной карты, я получаю этот тост Успешно полученные данные платежа .Я также написал bluesnap в ID шлюза и продавца-песочницы в GatewayMerchantId.Теперь я застрял, может кто-нибудь помочь мне с тем, как отправить эти данные платежа на BlueSnap и получить подтверждение оплаты от BlueSnap, чтобы мой платеж отображался на панели инструментов песочницы BlueSnap.

Спасибо.

Я загрузил свой код handlePaymentSuccess(), где я получаю тост, и метод gatewatTokenization(), где я написал gateway и merchantId.Если вам нужно больше кода, я могу загрузить его.

private void handlePaymentSuccess(PaymentData paymentData) {

        String paymentInformation = paymentData.toJson();

        // Token will be null if PaymentDataRequest was not constructed using fromJson(String).
        if (paymentInformation == null) {
            return;
        }
        JSONObject paymentMethodData;

        try {

            paymentMethodData = new JSONObject(paymentInformation).getJSONObject("paymentMethodData");
            // If the gateway is set to "example", no payment information is returned - instead, the
            // token will only consist of "examplePaymentMethodToken".
            if (paymentMethodData
                    .getJSONObject("tokenizationData")
                    .getString("type")
                    .equals("PAYMENT_GATEWAY")
                    && paymentMethodData
                    .getJSONObject("tokenizationData")
                    .getString("token")
                    .equals("examplePaymentMethodToken")) {
                android.app.AlertDialog alertDialog =
                        new android.app.AlertDialog.Builder(this)
                                .setTitle("Warning")
                                .setMessage(
                                        "Gateway name set to \"example\" - please modify "
                                                + "Constants.java and replace it with your own gateway.")
                                .setPositiveButton("OK", null)
                                .create();
                alertDialog.show();
            }

            String billingName =
                    paymentMethodData.getJSONObject("info").getJSONObject("billingAddress").getString("name");

            JSONObject testing =
                    paymentMethodData.getJSONObject("info");

            JSONObject testingNew =
                    paymentMethodData;

            try {
                String paymentToken = createBlsTokenFromGooglePayPaymentData(paymentData);
                //Toast.makeText(this, String.valueOf(paymentToken), Toast.LENGTH_LONG).show();
            } catch (Exception e) {
                e.printStackTrace();
            }

            Log.d("BillingName", billingName);
            Toast.makeText(this, getString(R.string.payments_show_name, billingName), Toast.LENGTH_LONG).show();
            //Toast.makeText(this, String.valueOf(testing), Toast.LENGTH_LONG).show();


            // Logging token string.
            Log.d("GooglePaymentToken", paymentMethodData.getJSONObject("tokenizationData").getString("token"));
        } catch (JSONException e) {
            Log.e("handlePaymentSuccess", "Error: " + e.toString());
            return;
        }
    }
private static JSONObject getGatewayTokenizationSpecification() throws JSONException {
    return new JSONObject(){{
      put("type", "PAYMENT_GATEWAY");
      put("parameters", new JSONObject(){{
        put("gateway", "bluesnap");
        put("gatewayMerchantId", "######");//i've hidden MerchantId
        }
      });
    }};
  }
...