我正在使用Patym SDK做一个IOS应用程序,事务成功完成,但是没有导航回应用程序。其显示带有“重定向回应用程序”的Web视图。有人遇到过这个问题吗?

这是我的代码:

extension ShippingViewController : PGTransactionDelegate {


    func didCancelTrasaction(_ controller: PGTransactionViewController!) {
        let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "confirmViewController") as! confirmViewController
        self.present(vc, animated: true, completion: nil)
    }

    func didFinishedResponse(_ controller: PGTransactionViewController!, response responseString: String!) {
        let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "confirmViewController") as! confirmViewController
        self.present(vc, animated: true, completion: nil)
    }


    func errorMisssingParameter(_ controller: PGTransactionViewController!, error: Error!) {
        print(error)

        showAlert(title: "didCancelTrasaction", message: error.localizedDescription)
        let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "CSWhoopsView") as! CSAlertViewController
        self.present(vc, animated: true, completion: nil)
    }


    func didFailTransaction(_ controller: PGTransactionViewController!, error: Error!, response: [AnyHashable : Any]!) {
        print(error)
        showAlert(title: "Transaction Failed", message: error.localizedDescription)
        let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "CSWhoopsView") as! CSAlertViewController
        self.present(vc, animated: true, completion: nil)
    }
    func didCancelTransaction(_ controller: PGTransactionViewController!, error: Error!, response: [AnyHashable : Any]!) {

        showAlert(title: "Transaction Cancelled", message: error.localizedDescription)
        let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "CSWhoopsView") as! CSAlertViewController
        self.present(vc, animated: true, completion: nil)

    }

    func didFinishCASTransaction(_ controller: PGTransactionViewController!, response: [AnyHashable : Any]!) {
         print("my response isis :" )
        print(response)
        showAlert(title: "cas", message: "")

    }

    func didSucceedTransaction(_ controller: PGTransactionViewController!, response: [AnyHashable : Any]!) {
         print("my response is :" )
        print(response)
        showAlert(title: "Transaction Successfull", message: NSString.localizedStringWithFormat("Response- %@", response) as String)

        let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "confirmViewController") as! confirmViewController
        self.present(vc, animated: true, completion: nil)
    }
}

最佳答案

根据此文档:PayTM iOS SDK Integration StepPGTransactionDelegate提供以下方法来处理回调。

// On Successful Payment
func didSucceedTransaction(controller: PGTransactionViewController, response: [NSObject : AnyObject]) {
    print(response)
    print("Response - \(response)")
    //removeController  - Close PayTM Controller here using dismiss or pop controller methods
}

// On Failure
func didFailTransaction(controller: PGTransactionViewController, error: NSError, response: [NSObject : AnyObject]) {
    print(response)
    if response.count == 0 {
        print(response.description)
    }
    else if error != 0 {
       print(error.localizedDescription)
    }
    //removeController  - Close PayTM Controller here using dismiss or pop controller methods
}


//On Cancellation
func didCancelTransaction(controller: PGTransactionViewController, error: NSError, response: [NSObject : AnyObject]) {
    print("Transaction has been Cancelled")
    //removeController  - Close PayTM Controller here using dismiss or pop controller methods
}

func didFinishCASTransaction(controller: PGTransactionViewController, response: [NSObject : AnyObject]) {
    print(response);
}

另外一个重要的点是:Paytm CALLBACK_URL-该URL由Paytm提供,因此应用程序可以从paytm中读取数据并返回。

注意:由于SDK中的最新更新是PGTransactionDelegate方法(在Objective-C中)
@protocol PGTransactionDelegate <NSObject>

@required
//Called when a transaction has completed. response dictionary will be having details about Transaction.

-(void)didFinishedResponse:(PGTransactionViewController *)controller response:(NSString *)responseString;

//Called when a user has been cancelled the transaction.

-(void)didCancelTrasaction:(PGTransactionViewController *)controller;

//Called when a required parameter is missing.

-(void)errorMisssingParameter:(PGTransactionViewController *)controller error:(NSError *) error;

@end

编辑:

在代码中替换以下委托实现。
func didSucceedTransaction(_ controller: PGTransactionViewController!, response: [AnyHashable : Any]!) {
 print("my response is :" )
print(response)
showAlert(title: "Transaction Successfull", message: NSString.localizedStringWithFormat("Response- %@", response) as String)


    controller.dismiss(animated: true) {
       let vc =  UIStoryboard(name: "account", bundle: nil).instantiateViewController(withIdentifier: "confirmViewController") as! confirmViewController
       self.present(vc, animated: true, completion: nil)
    }


}

关于ios - Paytm成功后无法导航回我的应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48221627/

10-11 21:36