requestPaymentLink method
Future<PaymentResponse>
requestPaymentLink({
- required PaymentMethods paymentMethod,
- required num amount,
- MoreDetails? moreDetails,
- PayerDetails? payerDetails,
- void onError(
- String message
Request Payment Link
Implementation
Future<PaymentResponse> requestPaymentLink({
required PaymentMethods paymentMethod,
required num amount,
MoreDetails? moreDetails,
PayerDetails? payerDetails,
void Function(String message)? onError,
}) async {
/// transaction ID
String txnID = _getRandom();
/// transaction Header
String txnHDR = _getRandom();
/// hashMac
String hashMac = await _generateHashMac(amount: amount, transactionID: txnID, transactionHDR: txnHDR);
/// request
InitiatePaymentRequest request = InitiatePaymentRequest(
dbRqst: DbRequestType.paymentEcommerce.value,
doAppinfo: _appInfo,
doMerchDtl: _merchantDetails,
doMoreDtl: moreDetails ?? MoreDetails(),
doPyrDtl: payerDetails ?? PayerDetails(),
doTxnDtl: [TransactionDetails(subMerchUid: _merchantDetails.merchantID, txnAmt: amount)],
doTxnHdr: TransactionHeader(merchTxnUid: txnID, payFor: "ECom", payMethod: paymentMethod.value, txnHdr: txnHDR, hashMac: hashMac),
);
/// Api
InitiatePaymentResponse res = await _bedeApi.requestPayment(request: request);
/// On Error
if (onError != null && res.errorMessage != "Success") {
onError(res.errorMessage);
}
return PaymentResponse(paymentLink: res.payUrl, hashMac: hashMac, transactionId: txnID);
}