Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振-付款方法中的无效数组\u条带签出类型 我在做什么_Flutter_Stripe Payments_Stripe Checkout - Fatal编程技术网

Flutter 颤振-付款方法中的无效数组\u条带签出类型 我在做什么

Flutter 颤振-付款方法中的无效数组\u条带签出类型 我在做什么,flutter,stripe-payments,stripe-checkout,Flutter,Stripe Payments,Stripe Checkout,我通过webview和下面提到的一些其他插件在flutter中使用条带签出。我在另一个应用程序中使用了相同的代码,它在那里完全可以正常工作。在我当前的应用程序中显示此错误时: {“error”:{“message”:“Invalid array”,“param”:“payment\u method\u types”,“type”:“Invalid\u request\u error”} 我在这里传递的参数是关于条带签出文档的: 最终正文={ “付款方式类型”:[“卡”], “行项目”:[ { “

我通过
webview
和下面提到的一些其他插件在flutter中使用条带签出。我在另一个应用程序中使用了相同的代码,它在那里完全可以正常工作。在我当前的应用程序中显示此错误时:

{“error”:{“message”:“Invalid array”,“param”:“payment\u method\u types”,“type”:“Invalid\u request\u error”}

我在这里传递的参数是关于条带签出文档的:

最终正文={
“付款方式类型”:[“卡”],
“行项目”:[
{
“名称”:“$serviceName”,
“金额”:price.round(),
“货币”:“美元”,
“数量”:1,
}
],
“模式”:“付款”,
“成功url”:”https://success.com/{签出会话ID},
'取消url':'https://cancel.com/',
};
插件:
  • webview\u flatter:^2.0.8
  • dio:^4.0.0
  • js:^0.6.3
完整代码 这段代码基本上返回一个
sessionId
,然后我将进一步使用它

类剥离服务器{
最后一个字符串serviceName;
最终国际价格;
StripeServer({this.serviceName,this.price});
Future createCheckout()异步{
final auth=“Basic”+base64Encode(utf8.encode(dotenv.env['secretKey']);
最终机构={
“付款方式类型”:[“卡”],
“行项目”:[
{
“名称”:“$serviceName”,
“金额”:price.round(),
“货币”:“美元”,
“数量”:1,
}
],
“模式”:“付款”,
“成功url”:”https://success.com/{签出会话ID},
'取消url':'https://cancel.com/',
};
试一试{
最终结果=等待Dio().post(
"https://api.stripe.com/v1/checkout/sessions",
资料来源:body,
选项:选项(
标头:{HttpHeaders.authorizationHeader:auth},
contentType:“application/x-www-form-urlencoded”,
),
);
返回结果。数据['id'];
}关于错误捕获(e){
打印(如回复);
投掷e;
}
}
}
任何帮助都将不胜感激,如果您需要更多详细信息,请让我知道我将更新。

您必须删除
“支付方法类型”:[“卡”]
。 几个月前,通过这个领域是强制性的,但现在似乎没有必要了。下面是我的代码示例:

    var amountInt = (amount * 100.toDouble()).toInt();
    try {
      var data = {"amount": amountInt, "currency":"eur"}; //,"payment_method_types[]": ["card"]};
     
      Response response = await Dio().post("https://api.stripe.com/v1/payment_intents",
        data: data,
        options:
          Options(contentType:Headers.formUrlEncodedContentType,
            headers: {
              'Authorization': 'Bearer ${secret}',
            }
          ),
        );
      _currentSecret = response.data["client_secret"];
      return response.data["id"];
    } catch (err) {
      print('err charging user: ${err.toString()}');
    }

您确定已激活条带中的卡付款,并且正在使用正确的测试凭据吗?要在生产中接受卡付款,您需要激活您的Stripe帐户。是的,我已经激活了所有内容并设置了所有内容。甚至这个代码也适用于另一个应用程序,这里显示了这个错误,我被卡住了,我检查了他们的所有文档,比如你的HTTP库可能以一种奇怪的方式解析负载。我会在仪表板上查看你的条带日志,仪表板上会显示你发送给条带的内容。谢谢@PaulAsjes。日志显示我正在发送
“付款方法类型”:“卡”
,而我的代码是一个
列表,而不是字符串。有什么需要帮忙的吗?@PaulAsjes你可以检查一下,这是必经的。我已经在这里发布了解决方案:付款方式类型[]':['card']对我来说不起作用。请检查您的dart和Flatter版本。我正在使用
flatter2.2
dart2.13