generateToken method

Future<String> generateToken (
  1. {@required String number,
  2. @required String name,
  3. @required String expiryMonth,
  4. @required String expiryYear,
  5. @required String cvv,
  6. BillingModel billingModel}
)

Generate Token. number The card number. name The card holder name. expiryMonth The expiration month. expiryYear The expiration year. cvv The cvv behind the card. billingModel The billing model of the card.

Implementation

static Future<String> generateToken(
    {@required String number,
    @required String name,
    @required String expiryMonth,
    @required String expiryYear,
    @required String cvv,
    BillingModel billingModel}) async {
  try {
    if (billingModel == null) {
      // Send args without billing model
      final String token =
          await _channel.invokeMethod(METHOD_GENERATE_TOKEN, <String, String>{
        'number': number,
        'name': name,
        'expiryMonth': expiryMonth,
        'expiryYear': expiryYear,
        'cvv': cvv
      });
      return token;
    } else {
      // Send args with billing model
      final String token =
          await _channel.invokeMethod(METHOD_GENERATE_TOKEN, <String, Object>{
        'number': number,
        'name': name,
        'expiryMonth': expiryMonth,
        'expiryYear': expiryYear,
        'cvv': cvv,
        'billingModel': billingModel.toMap()
      });
      return token;
    }
  } on PlatformException catch (e) {
    if (e.code == GENERATE_TOKEN_ERROR)
      throw "Error Occured: Code: $GENERATE_TOKEN_ERROR. Message: ${e.message}. Details: Generating Token Error";
    throw "Error Occured: Code: ${e.code}. Message: ${e.message}. Details: ${e.details}";
  }
}