【问题标题】:During Integrating Razorpay Payment Gateway Payment is not happening?在集成 Razorpay 支付网关期间没有支付?
【发布时间】:2020-09-26 04:11:38
【问题描述】:

这是显示的错误消息 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: window.getDeviceDetails is not a function",来源:https://api.razorpay.com/v1/checkout/public?version=1.5.16&library=checkoutjs&platform=android(1)

在这方面帮助我

【问题讨论】:

  • 当我通过卢比时。 10 支付然后得到同样的错误;而如果我传递更大的值,例如 Rs。 250,那么在我的情况下它工作正常。可能有最低交易限额...
  • 对不起..但它还没有工作..同样的错误
  • @tejraj,发生这种情况是因为您提供的资金被 Razorpay 视为 paise,而您可以支付的最低金额为 1Rs(即 100)。
  • 我也有同样的问题。即使我提供 200 的金额,它也不起作用。当我在后端的控制台中调试金额和订单时,金额打印正确,但仅在创建订单后的前端金额未定义:/。谁能告诉我如何解决它?即使使用了 parseInt 和 Float 也没有用。

标签: java android payment-gateway payment razorpay


【解决方案1】:

尝试运行此代码:

 @override
  void initState() {
    super.initState();
    _razorpay = Razorpay();
    _razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, _handlePaymentSuccess);
    _razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, _handlePaymentError);
    _razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);
  }

  @override
  void dispose() {
    super.dispose();
    _razorpay.clear();
  }

  void openCheckout() async {
    var options = {
      'key': 'rzp_test_1DP5mmOlF5G5ag',
      'amount': 2000,
      'name': 'Acme Corp.',
      'description': 'Fine T-Shirt',
      'prefill': {'contact': '8888888888', 'email': 'test@razorpay.com'},
      'external': {
        'wallets': ['paytm']
      }
    };

    try {
      _razorpay.open(options);
    } catch (e) {
      debugPrint(e);
    }
  }

  void _handlePaymentSuccess(PaymentSuccessResponse response) {
    Fluttertoast.showToast(
        msg: "SUCCESS: " + response.paymentId, timeInSecForIos: 4);
  }

  void _handlePaymentError(PaymentFailureResponse response) {
    Fluttertoast.showToast(
        msg: "ERROR: " + response.code.toString() + " - " + response.message,
        timeInSecForIos: 4);
  }

  void _handleExternalWallet(ExternalWalletResponse response) {
    Fluttertoast.showToast(
        msg: "EXTERNAL_WALLET: " + response.walletName, timeInSecForIos: 4);
  }

当您提供的资金格式不正确时,会发生上述错误。 RazorPay 只接受派斯的钱,因此如果您以十进制格式(即双精度)或任何小于 100 的值提供钱,那么它将引发该错误。因此,如果您有任何十进制值,请尝试将其转换为整数 paise。我也附上一个小代码供参考。

 RegExp regex = RegExp(r"([.]*0)(?!.*\d)");
 double money = double.parse(widget.totalMoney);
    double tMoney = money*100;
    String stringMoney = tMoney.toString().replaceAll(regex, '');
    int totalMoney = int.parse(stringMoney);

正则表达式将从 stringMoney 中删除小数点后的零。或者直接转成字符串也一样。

希望这会有所帮助:)

【讨论】:

    【解决方案2】:

    这可能是密钥 ID 和密钥密码不匹配的问题。尝试仔细检查代码是否具有一致的 Key ID 和 Key Secret。尤其是在您从测试帐户切换到真实帐户的情况下。

    【讨论】:

      【解决方案3】:

      请重新检查您的 API 密钥是否有效。这是由于您的 API 密钥或密码有错误。

      【讨论】:

        猜你喜欢
        • 2020-10-23
        • 2017-02-28
        • 2020-04-16
        • 2011-05-05
        • 2019-06-27
        • 2020-11-25
        • 2016-06-16
        • 2016-02-02
        • 2012-05-21
        相关资源
        最近更新 更多