我正在开发一个带有支付屏幕的 Flutter 移动应用程序。我必须使用互联网支付网关(由银行的 IPG 页面提供)。客户按下网关网页上的 PAYMENT 按钮后,控制权必须返回到 Flutter App PaymentResultScreen。我使用 WebView 调用银行 URL。 WebView 上的代码:
static String testHtmlString = '''
<form action="https://www.mybank.com/eng/payments" method="post">
<input type="hidden" name="merchant_id" value="2481000974560100">
<input type="hidden" name="merchant_key" value="4sl4o153ihep1m7sdf6f0c5h781ad84j">
<input type="hidden" name="return_url" value="https://www.example.com/result">
<input type="hidden" name="cancel_url" value="https://www.example.com/cancel">
<input type="hidden" name="notify_url" value="https://www.example.com/notify">
<input type="hidden" name="amount" value="100.00">
<input type="hidden" name="item_name" value="Test Product">
<input type="submit" value="PAY NOW">
</form>
''';
问题:
N.B 对 flutter 还很陌生。
我已经厌倦了html包
您可以输入任何您想要的网址。 让我们使用示例中的内容(此 URL 是否存在并不重要,因为我们将捕获访问该 URL 的请求并执行其他操作)
onNavigationRequest: (NavigationRequest request) {
if (request.url.startsWith('https://www.example.com/result')) {
Navigator.pushNamed(context, '/PaymentResultPage');
}
if (request.url.startsWith('https://www.example.com/cancel')) {
Navigator.pushNamed(context, '/PaymentCancelPage');
}
return NavigationDecision.navigate;
},