initiateTransaction static 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
static 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 await _transactionHelper.transact(_channel, transactionDetails);
}