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] 

[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;



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.

                                   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
                          completed:^(NSString * _Nonnull transactionRef) {
                              [self showAlertWithText:@"Refund completed successfully"];
                          } failed:^(MobilePaymentSDKError * _Nonnull error) {
                              [self showAlertWithText:[@"Refund failed. Error: "                                 

Note: Please make sure that you are using the correct Transaction Reference ID for the transaction that you want to be refunded.