Kotlin - Google Pay integration

 avatar
unknown
kotlin
2 years ago
2.8 kB
6
Indexable
    val isReadyToPayJson = "{\n" + " \"apiVersion\": 2,\n" + " \"apiVersionMinor\": 0,\n" + " \"allowedPaymentMethods\": [\n" + " {\n" + " \"type\": \"CARD\",\n" + " \"parameters\": {\n" + " \"allowedAuthMethods\": [\"PAN_ONLY\", \"CRYPTOGRAM_3DS\"],\n" + " \"allowedCardNetworks\": [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"]\n" + " },\n" + " \"tokenizationSpecification\": {\n" + " \"type\": \"PAYMENT_GATEWAY\",\n" + " \"parameters\": {\n" + " \"gateway\": \"your_gateway_name\",\n" + " \"gatewayMerchantId\": \"your_gateway_merchant_id\"\n" + " }\n" + " }\n" + " }\n" + " ]\n" + "}" 
    val isReadyToPayRequest = IsReadyToPayRequest.fromJson(isReadyToPayJson) 
    val task = paymentsClient.isReadyToPay(isReadyToPayRequest) task.addOnCompleteListener { task -> try 
        { 
            val result = task.getResult(ApiException::class.java)!! 
            // Dispositivo compatível com o Google Pay 
        } catch (exception: ApiException) { 
        // Dispositivo incompatível com o Google Pay 
        } 
    }

val paymentDataRequestJson = "{\n" + " \"apiVersion\": 2,\n" + " \"apiVersionMinor\": 0,\n" + " \"allowedPaymentMethods\": [\n" + " {\n" + " \"type\": \"CARD\",\n" + " \"parameters\": {\n" + " \"allowedAuthMethods\": [\"PAN_ONLY\", \"CRYPTOGRAM_3DS\"],\n" + " \"allowedCardNetworks\": [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"]\n" + " },\n" + " \"tokenizationSpecification\": {\
" \"type\": \"PAYMENT_GATEWAY\",\n" + " \"parameters\": {\n" + " \"gateway\": \"your_gateway_name\",\n" + " \"gatewayMerchantId\": \"your_gateway_merchant_id\"\n" + " }\n" + " }\n" + " }\n" + " ],\n" + " \"transactionInfo\": {\n" + " \"totalPriceStatus\": \"FINAL\",\n" + " \"totalPrice\": \"100.00\",\n" + " \"currencyCode\": \"USD\"\n" + " },\n" + " \"merchantInfo\": {\n" + " \"merchantName\": \"Your Merchant Name\",\n" + " \"merchantId\": \"your_merchant_id\",\n" + " \"merchantOrigin\": \"https://your-merchant-website.com\"\n" + " }\n" + "}"

    val paymentDataRequest = PaymentDataRequest.fromJson(paymentDataRequestJson)
    val task = paymentsClient.loadPaymentData(paymentDataRequest)
    task.addOnCompleteListener { task ->
    try {
        val paymentData = task.getResult(ApiException::class.java)!!
        // Use o paymentData para processar o pagamento
        } catch (exception: ApiException) {
        // Erro ao carregar o paymentData
    }
}

fun processPayment(paymentData: PaymentData) 
{ 
    val paymentMethodData = paymentData.cardInfo!!.paymentMethod!! 
    val tokenizationData = paymentMethodData.tokenizationData!! 
    val paymentToken = tokenizationData.token!! // Envie o paymentToken para o seu gateway de pagamento para processar o pagamento 
}

Editor is loading...