我在用,

* Xcode-10.2

* Swift语言版本-Swift 5

* RazorPay框架版本-1.1.1(pod'razorpay-pod','1.1.1')

我的问题是当我打电话给我时,
razorpay.open(options, displayController: self)
它给我一个意外的错误(代码-1)

/Users/travis/build/razorpay/razorpay-ios/RazorpayIOS/CheckoutOtpelf/Classes/RazorpayCheckoutVC.swift已取消初始化

我尝试的解决方案是

  • Github社区说在调用open函数(https://github.com/razorpay/razorpay-pod/issues/42)之前隐藏导航栏。
  • 使用了多框架版本的razor pay
  • 也尝试过Swift 4.2
  • 我已经清理了我的项目,删除了派生数据并重建了它。

  • 这是我的代码
    import Razorpay
    
    class controller: RazorpayPaymentCompletionProtocol{
            private var razorpay: Razorpay!
    
    override func viewDidLoad() {
            super.viewDidLoad()
            razorpay = Razorpay.initWithKey("test_key", andDelegate: self)
    }
    
    func openRazorPay(){
            let options = [
                "amount" : "12.00"
            ]
            self.navigationController?.isNavigationBarHidden = true
            razorpay.open(options, displayController: self)
    }
    
    func onPaymentSuccess(_ payment_id: String) {
            print("success")
    }
    
    func onPaymentError(_ code: Int32, description str: String) {
            print("Failure")
    }
    
    }
    
    

    该框架支持Android,但不支持iOS。我想得到付款流程。如果有人有任何解决方案,请与我分享。

    最佳答案

    我面临着同样的问题……

    我做的不同的是,我将一个静态金额值100传递给其他数据,然后按原样传递其他数据...,然后进行付款流程...可以正常工作...打开付款窗口。

    如果您的金额小于100,那么就会发生...根据文档,我们在参数中分配的金额将其视为paisa...。尝试使用此金额,您将获得预期的结果。

    在这里,您要传递的金额是乘以100,例如1 x100。内部处理会将其计为INR 1,但他们的计算将其视为paisa。因此,您传递的值100表示​​100比萨,在付款窗口中将显示INR 1。

    关于ios - Razor 付款没有重定向到结帐页面,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55609468/

    10-15 08:08