requestGooglePayPayment method
Requests Apple Pay payment.
price
- Total purchase price. The price must use '.' decimal separator, not ','. Fro example '199.99'
currencyCode
- Currency code. For example 'RUB'.
countryCode
- Country code. For example 'RU'.
merchantName
- Your merchant name. Merchant name is rendered in the payment sheet.
In TEST environment, or if a merchant isn't recognized, a “Pay Unverified Merchant”
message is displayed in the payment sheet.
publicId
- Your Cloudpayments public id. You can obtain it in your Cloudpayments account
Returns GooglePayResponse. You have to check whether response is success and if so, you can obtain
payment token by response.token
if (response.isSuccess) {
final token = response.token;
// use token for payment by a cryptogram
} else if (response.isError) {
// show error
} else if (response.isCanceled) {
// google pay was canceled
}
Implementation
Future<GooglePayResponse> requestGooglePayPayment({
required String price,
required String currencyCode,
required String countryCode,
required String merchantName,
required String publicId,
}) async {
if (Platform.isAndroid) {
try {
final dynamic result =
await _channel.invokeMethod<dynamic>('requestGooglePayPayment', {
'price': price,
'currencyCode': currencyCode,
'countryCode': countryCode,
'merchantName': merchantName,
'publicId': publicId,
});
return GooglePayResponse.fromMap(result);
} on PlatformException catch (e) {
return GooglePayResponse.fromPlatformException(e);
} catch (e) {
return GooglePayResponse.fromException();
}
} else {
throw Exception("Google Pay is allowed only on Android");
}
}