Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用BlueSnap在Android应用程序中实现Google Pay_Java_Android_Google Pay_Bluesnap - Fatal编程技术网

Java 使用BlueSnap在Android应用程序中实现Google Pay

Java 使用BlueSnap在Android应用程序中实现Google Pay,java,android,google-pay,bluesnap,Java,Android,Google Pay,Bluesnap,我想在我的android应用程序中实现Google pay,我想要BlueSnap作为Google pay处理器。我在5月份的应用程序中实现了googlepay,还创建了BlueSnapsandbox账户。当我输入我的实时卡详细信息时,我将收到此toast成功接收付款数据。我还在gateway中编写了bluesnap,在GatewayMerchantId中编写了沙盒商户id。现在我被卡住了,有人能帮我把这些付款数据发送到BlueSnap并从BlueSnap获得付款确认,这样我的付款就可以显示在B

我想在我的android应用程序中实现Google pay,我想要
BlueSnap
作为
Google pay
处理器。我在5月份的应用程序中实现了
googlepay
,还创建了
BlueSnap
sandbox账户。当我输入我的实时卡详细信息时,我将收到此toast成功接收付款数据。我还在gateway中编写了bluesnap,在
GatewayMerchantId
中编写了沙盒商户id。现在我被卡住了,有人能帮我把这些付款数据发送到
BlueSnap
并从
BlueSnap
获得付款确认,这样我的付款就可以显示在
BlueSnap
沙箱仪表板上了

多谢各位

我已经上传了我的
handlePaymentSuccess()
code,在那里我收到了toast和
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;
        }
    }
根据:

paymentToken
应发送到BlueSnap API,该API将在本节中详细介绍

我认为相关的部分是向BlueSnap发布一篇HTTP帖子,其中包含您作为
CreateBlstokenFromGooglePaymentData
的一部分收到的
paymentToken

curl-v-X POSThttps://sandbox.bluesnap.com/services/2/transactions \
-H'内容类型:应用程序/json'\
-H'接受:应用程序/json'\
-H'授权:基本dXNlcm5hbWU6cGFzc3dvcmQ='\
-d'
{
“cardTransactionType”:“身份验证捕获”,
“软描述符”:“描述测试”,
“金额”:11.00,
“货币”:“美元”,
“钱包”:{
“walletType”:“谷歌支付”,
“encodedPaymentToken”:“IMRHKGEIOIJUY1AVRITUY8ZEG5BXHCMFD”
}
}
其中,
paymentToken
被分配给
encodedPaymentToken
的值

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
        }
      });
    }};
  }