isvSale method
Future<TransactionResponse>
isvSale({
- String? merchantKey,
- required String clientTransactionId,
- required double amount,
- double? tipAmount,
- bool showReceipt = true,
- bool showTransactionResult = true,
- bool showRating = true,
- Map<
String, dynamic> ? saleToAcquirerData, - double? isvAmount,
- required String isvClientId,
- required String isvClientSecret,
- String? isvMerchantId,
- int isvCurrencyCode = 978,
- String isvSourceCode = 'Default',
- String? isvCustomerTrns,
- int? isvMerchantSourceCode,
- String? isvClientTransactionId,
Make a sale with the ISV schema
same as sale request but with ISV partner program params (https://developer.vivawallet.com/isv-partner-program/)
Implementation
Future<TransactionResponse> isvSale({
String? merchantKey,
required String clientTransactionId,
required double amount,
double? tipAmount,
bool showReceipt = true,
bool showTransactionResult = true,
bool showRating = true,
Map<String, dynamic>? saleToAcquirerData,
double? isvAmount,
required String isvClientId,
required String isvClientSecret,
String? isvMerchantId,
int isvCurrencyCode = 978,
String isvSourceCode = 'Default',
String? isvCustomerTrns,
int? isvMerchantSourceCode,
String? isvClientTransactionId,
}) async {
final Map<String, dynamic> params = <String, dynamic>{
'merchantKey': merchantKey ?? 'deprecated',
'clientTransactionId': clientTransactionId,
'amount': ParamUtils.doubleToAmount(amount),
'tipAmount':
tipAmount != null ? ParamUtils.doubleToAmount(tipAmount) : null,
'show_receipt': showReceipt,
'show_transaction_result': showTransactionResult,
'show_rating': showRating,
'saleToAcquirerData': saleToAcquirerData != null
? base64Encode(
const Utf8Encoder().convert(saleToAcquirerData.toString()),
)
: null,
'ISV_amount': ParamUtils.doubleToAmount(isvAmount ?? 0.0),
'ISV_clientId': isvClientId,
'ISV_clientSecret': isvClientSecret,
'ISV_merchantId': isvMerchantId,
'ISV_currencyCode': isvCurrencyCode,
'ISV_sourceCode': isvSourceCode,
'ISV_customerTrns': isvCustomerTrns,
'ISV_merchantSourceCode': isvMerchantSourceCode,
'ISV_clientTransactionId': isvClientTransactionId,
};
final data = await _invokePosMethod('saleRequest', params);
return TransactionResponse.create(_callbackScheme, data);
}