google-pay / flutter-plugin

Apache License 2.0
145 stars 129 forks source link

GooglePayButton disappears after loading is finished on the physical phone #267

Open hm86z2 opened 5 months ago

hm86z2 commented 5 months ago

Hello,

GooglePayButton disappears after loading is finished on the physical phone only

Here my code :

        GooglePayButton(
                  paymentConfiguration: PaymentConfiguration.fromJsonString(
                      payment_configurations.defaultGooglePay),
                  paymentItems: paymentItems,
                  type: GooglePayButtonType.buy,
                  // width: 8.sw,
                   // height: 50,
                  margin: const EdgeInsets.only(top: 15.0),
                  onPaymentResult: (result)=> onSubscribe(context,result),
                  loadingIndicator: const Center(
                    child: CircularProgressUi(),
                  ),
                ),

Here my payment_configurations.defaultGooglePay :

const String defaultGooglePay = '''{
  "provider": "google_pay",
  "data": {
    "environment":  "PRODUCTION", 
    "apiVersion": 2, 
    "apiVersionMinor": 0,
    "allowedPaymentMethods": [
      {
        "type": "CARD",
        "tokenizationSpecification": {
          "type": "PAYMENT_GATEWAY",
          "parameters": {
            "gateway": "example",
            "gatewayMerchantId": "gatewayMerchantId"
          }
        },
        "parameters": {
          "allowedCardNetworks": ["VISA", "MASTERCARD"],
          "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
          "billingAddressRequired": true,
          "billingAddressParameters": {
            "format": "FULL",
            "phoneNumberRequired": true
          }
        }
      }
    ],
    "merchantInfo": {
      "merchantId": "xxxxxxxxxxxxxxx",
      "merchantName": "Subscription"
    },
    "transactionInfo": {
      "countryCode": "US",
      "currencyCode": "USD"
    }
  }
}''';
baraazain commented 5 months ago

i have same issuess anyone resolve it ??

baraazain commented 5 months ago

Hello,

GooglePayButton disappears after loading is finished on the physical phone only

Here my code :

        GooglePayButton(
                  paymentConfiguration: PaymentConfiguration.fromJsonString(
                      payment_configurations.defaultGooglePay),
                  paymentItems: paymentItems,
                  type: GooglePayButtonType.buy,
                  // width: 8.sw,
                   // height: 50,
                  margin: const EdgeInsets.only(top: 15.0),
                  onPaymentResult: (result)=> onSubscribe(context,result),
                  loadingIndicator: const Center(
                    child: CircularProgressUi(),
                  ),
                ),

Here my payment_configurations.defaultGooglePay :

const String defaultGooglePay = '''{
  "provider": "google_pay",
  "data": {
    "environment":  "PRODUCTION", 
    "apiVersion": 2, 
    "apiVersionMinor": 0,
    "allowedPaymentMethods": [
      {
        "type": "CARD",
        "tokenizationSpecification": {
          "type": "PAYMENT_GATEWAY",
          "parameters": {
            "gateway": "example",
            "gatewayMerchantId": "gatewayMerchantId"
          }
        },
        "parameters": {
          "allowedCardNetworks": ["VISA", "MASTERCARD"],
          "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
          "billingAddressRequired": true,
          "billingAddressParameters": {
            "format": "FULL",
            "phoneNumberRequired": true
          }
        }
      }
    ],
    "merchantInfo": {
      "merchantId": "xxxxxxxxxxxxxxx",
      "merchantName": "Subscription"
    },
    "transactionInfo": {
      "countryCode": "US",
      "currencyCode": "USD"
    }
  }
}''';

do you resolve the issues

JlUgia commented 4 months ago

Hi @hm86z2, the GooglePayButton component only appears on screen if Google Pay is available for the device and user accessing your application. That is, the device needs to have a recent version of Google Play services installed, and the user in your application needs to be logged in with a valid Google/Gmail account.

For more details, take a look at the prerequisites to integrate Google Pay in your Android application.

augustineonu commented 3 months ago

So as I am based in Nigeria, and I can see Google Pay is not available for my region, I can't integrate for the app I am working on.

JlUgia commented 3 months ago

This plugin uses the online Google Pay API, which is available in your country. Is Google Play services installed on the device you are using to test your application? Are you logged in with a Gmail account?

augustineonu commented 3 months ago

But the google wallet is not available for my region. But you mentioned "he GooglePayButton component only appears on screen if Google Pay is available for the device" I have attached a screenshot below

Screenshot 2024-08-04 at 20 26 47