Make a payment
Create an instance of PaymentViewController with a list of CartItem object, a unique order id and a delegate to handle various outcomes of the operation:
let controller = PaymentViewController(cartItems: selectedCartItems,
orderId: ICUtils.randomOrderId,
delegate: self)
self.present(controller, animated: true, completion: nil)
PaymentViewController *controller = [[PaymentViewController alloc] initWithCartItems:_selectedCartItems
orderId:[ICUtils randomOrderId]
delegate:self];
[self presentViewController:controller animated:YES completion:nil];
The delegate must implement PaymentDelegate’s methods:
func didMakePayment(transactionRef: String)
func paymentFailed(error: MobilePaymentSDKError)
- (void)didMakePaymentWithTransactionRef:(NSString *)transactionRef;
- (void)paymentFailedWithError:(MobilePaymentSDKError *)error;
Refund
Refunding a payment requires that you have the transaction reference and order id of the payment. The amount should also be specified. A completion block with the transaction reference and a failed block with a MobilePaymentSDKError object should be provided.
MobilePaymentSDK.refundTransaction(transaction.reference,
orderId: transaction.orderId,
amount: amount,
completed: { (transactionRef) in
showAlertWithText("Refund completed successfully")
},
failed: { (error) in
showAlertWithText("Refund failed. Error: \(error.message)")
})
[MobilePaymentSDK refundTransaction:_transaction.reference
orderId:_transaction.orderId
amount:_amount
completed:^(NSString * _Nonnull transactionRef) {
[self showAlertWithText:@"Refund completed successfully"];
} failed:^(MobilePaymentSDKError * _Nonnull error) {
[self showAlertWithText:[@"Refund failed. Error: "
stringByAppendingString:error.message]];
}];
Note: Please make sure that you are using the correct Transaction Reference ID for the transaction that you want to be refunded.