为啥我使用 react-native juspay 开始付款时会出现此错误?

Posted

技术标签:

【中文标题】为啥我使用 react-native juspay 开始付款时会出现此错误?【英文标题】:Why do I get this error when I start a payment using react-native juspay?为什么我使用 react-native juspay 开始付款时会出现此错误? 【发布时间】:2020-05-08 17:48:33 【问题描述】:

我正在这段代码中以 react-native 实现 juspay 支付网关。 我收到以下错误:

尝试调用虚拟方法'java.lang.String org.json.JSONObject.toString()' 在反应中的空对象引用 原生

这是它应该打开支付页面的代码,但它给出了一个错误。请帮帮我。

import EcReactNativeLibrary from '@juspay/ec-react-native-library';

var nbPayload = 
                  opName: "nbTxn",
                  paymentMethodType: "NB",
                  paymentMethod: "enter bank code", // 
                  redirectAfterPayment: "true",
                  format: "json"
                
//Here payload format is specified for netbanking transaction. For different types of payload types 
//for other operations, refer https://developer.juspay.in/docs/expresscheckout-sdk


var requestPayload = 
                baseParams: 
                  merchant_id: "my-merchant-id-test",
                  client_id: ""sgsjjvxbhwu15shq67161",
                  order_id: "272682162817218727",
                  amount: "1.00", //eg: "1.00"
                  customer_id : "pass customer id",
                  customer_email : "pintu0002@gmail.com",
                  customer_phone_number : "809254xxxx",
                  environment: "sandbox" 
                ,
                serviceParams: 
                  service: "in.juspay.ec",
                  session_token: "pass client auth token",
                  endUrls: ['https://www.reload.in/recharge/'],
                  payload: nbPayload 
                ,

              
              EcReactNativeLibrary.startPayment( 
                  JSON.stringify(requestPayload), 
                  (successResponse) => 
                    console.log(successResponse);
                  ,
                  (errorResponse) => 
                    console.log(errorResponse);
                   
              );

【问题讨论】:

【参考方案1】:

您的requestPayload 格式不正确。 endUrls 应该是一个字符串数组。

endUrls: ['https://www.reload.in/recharge/'],

错误的原因是由于对象格式错误,没有正确分配,所以当 JSON 序列化器尝试将其转换为字符串时,它会失败。

【讨论】:

endUrls: ['reload.in/recharge/'], 使用这种方式仍然出现此错误尝试在中的空对象引用上调用虚拟方法'java.lang.String org.json.JSONObject.toString()'反应原生

以上是关于为啥我使用 react-native juspay 开始付款时会出现此错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 npm install react-native 不起作用?

为啥 react-native 包使用原生 SDK 而不是 JS/web 版本?

为啥我的代码不能在 web 中的 react-native 代码中运行

为啥我不能在 ios 设备上关闭并重新打开 react-native 调试?

为啥我不能在 Windows 上运行 react-native 应用程序

开发服务器返回响应错误代码:500 react-native 为啥这个错误谁能告诉我