如何从 Web 支付网关返回 Flutter 应用

问题描述 投票:0回答:1

我正在开发一个带有支付屏幕的 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>
''';

问题:

  1. 我不知道 return_url 必须包含哪些内容
  2. 应用程序 PaymentResultScreen 必须映射/链接到返回 URL 中所述的内容
  3. 如何调用 my-app 来显示 PaymentResultScreen。

N.B 对 flutter 还很陌生。

我已经厌倦了html包

payment-processing flutter-html
1个回答
0
投票

您可以输入任何您想要的网址。 让我们使用示例中的内容(此 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;
      },
© www.soinside.com 2019 - 2024. All rights reserved.