设置Android Webiew进行Razorpay结帐

时间:2019-09-16 19:16:35

标签: android android-webview razorpay

我想通过Webview在Android中集成Razorpay付款网关。

遵循here中提供的步骤!

public class RazorPayActivity extends AppCompatActivity {

@Override
 protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_razor_pay);

        WebView webView = findViewById(R.id.activity_razor_pay_web_view);

        webView.getSettings().setJavaScriptEnabled(true);

        webView.getSettings().setPluginState(WebSettings.PluginState.ON);

        PaymentInterface paymentInterface = new PaymentInterface();

        webView.addJavascriptInterface(paymentInterface, "PaymentInterface");
String html = "<html><script> var options = {callback_url: my_url',redirect: true}</script></html>";
 webView.loadDataWithBaseURL("base_url",html , "text/html", "utf-8", null);

}

 class PaymentInterface{
        @JavascriptInterface
        public void success(String data){
            Log.i("RAZORPAY_LOG","success: "+data);
        }
        @JavascriptInterface
        public void error(String data){
            Log.i("RAZORPAY_LOG","error: "+data);
        }
    }

我还有一个回调URL,如给定的那样,该URL将被传递以处理传入的POST请求。

   var options = {
      callback_url: 'https://your-server/callback_url',
      redirect: true
    }

通过以base_url发送的Razorpay URL完成付款结帐后,我无法从Webview中重新获得对应用程序的控制权。

在整个过程中,有人可以帮我解决缺失的部分吗?

1 个答案:

答案 0 :(得分:0)

  1. 通过从JS / WebView调用JavascriptInterface对象,确保JS至Native Bridge可以正常工作。 Android Documentation
  2. 尝试调试WebView,检查JS控制台以获取可能的错误输出。 WebView debugging info