“无法识别的特征:‘支付’。”,来源:https://js.stripe.com/v3/ (1)
Posted
技术标签:
【中文标题】“无法识别的特征:‘支付’。”,来源:https://js.stripe.com/v3/ (1)【英文标题】:"Unrecognized feature: 'payment'.", source: https://js.stripe.com/v3/ (1) 【发布时间】:2022-01-16 05:47:55 【问题描述】:我正在尝试在我的 Flutter 应用中集成条带结账。我无法使用flutter_stripe
,因为我正在尝试设置订阅。结帐会话 ID 在服务器端生成得很好。但是在客户端我收到了这个错误:
I/chromium(13817): [INFO:CONSOLE(1)] "Unrecognized feature: 'payment'.", source: https://js.stripe.com/v3/ (1)
我似乎找不到与此错误相关的太多内容。甚至 Stripe 支持也被难住了。我做错了什么?
网页浏览代码
import 'package:flutter/cupertino.dart';
import 'package:webview_flutter/webview_flutter.dart';
class CheckoutPage extends StatefulWidget
const CheckoutPage(
this.pubKey,
this.checkoutSessionId,
Key key,
) : super(key: key);
final String pubKey;
final String checkoutSessionId;
@override
_CheckoutPageState createState() => _CheckoutPageState();
class _CheckoutPageState extends State<CheckoutPage>
WebViewController _controller;
void _stripeRedirect() async
final stripeJs = '''
const stripe = Stripe("$widget.pubKey");
stripe.reditrectToCheckout(
sessionId: "$widget.checkoutSessionId"
).then(function (result)
if (result.error)
return result.error.message;
return "Success";
);
''';
final resolve = await _controller.evaluatejavascript(stripeJs);
print(resolve);
@override
Widget build(BuildContext context)
final String initialUrl = 'https://mywebsite.com/checkout/ ';
return SafeArea(
child: CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: const Text('checkout'),
),
child: WebView(
initialUrl: initialUrl,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) => _controller = controller,
onPageFinished: (url)
if (url == initialUrl)
_stripeRedirect();
,
navigationDelegate: (req)
if (req.url.contains('success'))
Navigator.pop(context, 'success');
if (req.url.contains('cancel'))
Navigator.pop(context, 'cancel');
return NavigationDecision.navigate;
,
),
),
);
着陆页
<!DOCTYPE html>
<html>
<script src="https://js.stripe.com/v3/"></script>
<head>
<title>Stripe checkout</title>
</head>
<body>
<p>Loading, please wait...</p>
</body>
</html>
【问题讨论】:
【参考方案1】:不太确定这一点,但它可能与Feature-Policy 以及 Flutter 的 webview 如何执行它有关。可能想与 Flutter 社区联系,看看他们是否能对此有所了解。
【讨论】:
感谢您的回复,欢迎光临。不要被机器人打扰。 AFAIK Feature-Policy 是一项实验性功能。为什么 Stripe 甚至需要它?以上是关于“无法识别的特征:‘支付’。”,来源:https://js.stripe.com/v3/ (1)的主要内容,如果未能解决你的问题,请参考以下文章
iOs : 阻止具有来源“https://www.youtube.com”的框架访问具有来源的框架
实施 HTTP 到 HTTPS 重定向,保留 Google Analytics(分析)引荐来源网址
无法在“DOMWindow”上执行“postMessage”:提供的目标来源(“https://outlook.office.com”)与收件人窗口的来源不匹配