我想通过 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,将传递给它来处理传入的 POST 请求。
var options = {
callback_url: 'https://your-server/callback_url',
redirect: true
}
在通过作为 base_url 发送的 Razorpay URL 完成付款结帐后,我无法从 webview 重新控制应用程序。
谁能帮我解决整个过程中遗漏的部分?
最佳答案
- 通过从 JS/WebView 调用 JavascriptInterface 对象,确保您的 JS 到 Native Bridge 正常工作。 Android Documentation
- 尝试调试 WebView,检查 JS 控制台是否有可能的错误输出。 WebView debugging info
关于android - 为 Razorpay 结账设置 Android Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57963148/