initiateTransaction method
Start a UPI Transaction.
The parameters correspond to respective parameters in the UPI Linking Specification. Their names as appearing in the specification have been mentioned.
app represents a UPI payment app. One of the static members of
UpiApplication.
receiverUpiAddress is recipient UPI VPA. An invalid value will result
in InvalidUpiAddressException. See pa in UPI Linking Specification.
receiverName is the name of the recipient. See pn in specification.
transactionRef is an ID (typically unique if you need to
identify each payment) for the UPI transaction. On Android its value is
copied back in the response from the UPI payment app. See tr in
UPI Linking Specification.
amount must be a string form of payment amount and must be valid
currency (no more than 2 digits after decimal). The package also limits
it to be <=1,00,000. An unacceptable value leads to
InvalidAmountException. Some UPI payment apps or your payer account
may have their own permanent or daily limits, which this package cannot
control towards ensuring payment. See am in UPI Linking Specification.
transactionNote is a short description of the transaction. See tn in
UPI Linking Specification.
url: See url parameter in UPI Linking Specification
Implementation
Future<UpiTransactionResponse> initiateTransaction({
required UpiApplication app,
required String receiverUpiAddress,
required String receiverName,
required String transactionRef,
required String amount,
String? url,
String? transactionNote,
}) async {
final transactionDetails = TransactionDetails(
upiApplication: app,
payeeAddress: receiverUpiAddress,
payeeName: receiverName,
transactionRef: transactionRef,
amount: amount,
url: url,
transactionNote: transactionNote,
);
return _transactionHelper.transact(transactionDetails);
}