我让它在我的生产服务器上工作,但是在localhost canMakePayment()return上null。
我已经通过最小的Stripe代码跟踪了这一点,但是遇到了一个函数ko,该函数只是将调用发送CAN_MAKE_PAYMENT到某个消息队列,此后执行将变为异步,并且e.available === false在没有进一步信息的情况下解决请求之前,我无法进行进一步跟踪。
我已验证该API确实可在localhost上的Chrome浏览器中使用(window.PaymentRequest可用)。我也在本地运行https(尽管没有绿色复选标记)。
如何跟踪导致Stripe报告PaymentRequest不可用的原因?如果我没有绿色的SSL支票,Chrome会拒绝PaymentRequest呼叫吗?如果是这样,我将如何测试?Chrome文档只是说如果PaymentRequest可用,那么您可以调用API。
如果我知道在哪里处理消息队列,则可以进一步调试。
我正在创建一个客户对象并将它们分配给 Stripe 中的一个计划,但出现错误“不存在这样的计划”。错误中给出的计划 ID 是正确的计划 ID:No such plan: prod_EIcYiWkVa7LF7T
可能值得注意的是,客户的 StripeCustomerId 也没有写入数据库,但这可能是因为代码稍后失败,因此没有进行任何更改。
[HttpPost]
[Authorize]
public ActionResult Subscribe(SubscribeViewModel model)
{
string CurrentUserId = User.Identity.GetUserId();
var CurrentUser = UserManager.FindById(CurrentUserId);
StripeConfiguration.SetApiKey(ConfigurationManager.AppSettings["StripeSecretKey"]);
var custoptions = new CustomerCreateOptions
{
Description = "Customer object for " + CurrentUser.Email,
SourceToken = model.StripeToken
};
var custservice = new CustomerService();
Customer customer = custservice.Create(custoptions);
CurrentUser.StripeCustomerId = customer.Id;
var items = new List<SubscriptionItemOption>
{
new SubscriptionItemOption
{
PlanId = db.Plans.Where(a=>a.Id == CurrentUser.Plan).FirstOrDefault().StripePlanId
}
};
var options = new SubscriptionCreateOptions …Run Code Online (Sandbox Code Playgroud) 在条纹文档中,我可以轻松创建这样的卡片
var cardElement = elements.create("card");
Run Code Online (Sandbox Code Playgroud)
我只是简单地传递cardElement给confirmCardPayment
stripe.confirmCardPayment("{PAYMENT_INTENT_CLIENT_SECRET}", {
payment_method: {
card: cardElement,
},
});
Run Code Online (Sandbox Code Playgroud)
但是,出于视觉样式 css 的原因,我必须cardElement像这样分成三部分:
var cardNumberElement = elements.create("cardNumber");
var cardExpiryElement = elements.create("cardExpiry");
var cardCvcElement = elements.create("cardCvc");
Run Code Online (Sandbox Code Playgroud)
然后我想打电话stripe.confirmCardPayment,我现在该怎么办?
该文档仅显示cardElement方法,没有拆分示例。
我刚刚更换了带有 M1 芯片的新 MacBook Pro,但无法在 Xcode 上构建我的应用程序。我已经更新了所有的 cocoaPods 并且已经在终端中安装了 sudo gem cocoa pods install 命令和 Rosetta。这是我得到的两个错误并使构建失败:
'new' is unavailable: You cannot directly instantiate an STPIssuingCardPin
Run Code Online (Sandbox Code Playgroud) 试图在 NextJS 上传递 Stripe webhook 的原始主体时,我费尽心思!
\n尝试了很多来自各地的解决方案,但我似乎无法使其发挥作用。
\n打开具有超能力的开发人员(我仍在获取其中)。
\n条纹测试错误:
\n\n\n未找到与负载的预期签名匹配的签名。您是否传递了从 Stripe 收到的原始请求正文
\n
我的 NextJS webhook 端点测试:
\nimport { buffer } from 'micro';\nconst stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);\n\nexport default async function handler(req, res) {\n\n console.log("Payment intent")\n\n const event = req.body\n\n console.log(event)\n\n if (process.env.STRIPE_WEBHOOK_ENDPOINT_SECRET) {\n // Get the signature sent by Stripe\n const signature = req.headers['stripe-signature'];\n console.log(signature)\n try {\n event = stripe.webhooks.constructEvent(\n req.body,\n signature,\n process.env.STRIPE_WEBHOOK_ENDPOINT_SECRET\n );\n } catch (err) {\n console.log(`\xe2\x9a\xa0\xef\xb8\x8f Webhook signature verification failed.`, err.message);\n …Run Code Online (Sandbox Code Playgroud) javascript webhooks stripe-payments serverless-framework next.js
我正在使用 Stripe CLI 触发本地 Webhook 事件。该命令允许我使用以下选项/语法设置元数据:
\n--add resource:path1.path2=value
我尝试创建的元数据结构如下所示:
\n{\n id: 1,\n artistId: 2,\n image: { \n url: `https://somepath` \n }\n}\n\nRun Code Online (Sandbox Code Playgroud)\n这是我的命令:
\n$ stripe trigger payment_intent.succeeded --add payment_intent:metadata.id=1 --add payment_intent:metadata.artistId=1 --add payment_intent:metadata.image.url=https://www.arweave.net/ij5O6dDlzxOuWHUnikZapq10kkeEVe_elLWvpfE6ado?ext=PNG\n\xe2\xa3\x9f Checking for new versions... Setting up fixture for: payment_intent\nRunning fixture for: payment_intent\nTrigger failed: Request failed, status=400, body={\n "error": {\n "message": "Invalid value type: {:url=\\u003E\\"https://www.arweave.net/ij5O6dDlzxOuWHUnikZapq10kkeEVe_elLWvpfE6ado?ext=PNG\\"} must be a string",\n "param": "metadata",\n "type": "invalid_request_error"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n起初,我认为.URL 中的 违反了语法。但是当我将 URL 替换为foo。 …
如何使用 React 17 安装 next.js?当我输入:npx create-next-app --ts时,npx使用React 18安装了Next,但我无法使用React 18,因为Stripe目前无法与R18一起工作(https://www.npmjs.com/包/条)。
我遵循了基本的 React stripe 文档:\n https://stripe.com/docs/stripe-js/react
\n所以这是我有问题的代码:
\n索引.js
\nimport React from \'react\';\nimport ReactDOM from \'react-dom\';\nimport App from \'./App\';\nimport {Elements} from \'@stripe/react-stripe-js\';\nimport {loadStripe} from \'@stripe/stripe-js\';\n\n// Make sure to call `loadStripe` outside of a component\xe2\x80\x99s render to avoid\n// recreating the `Stripe` object on every render.\nconst stripePromise = loadStripe(\'process.env.REACT_APP_STRIPE_PUBLIC_KEY\');\n\nfunction Index() {\n/* const options = {\n // passing the client secret obtained from the server\n clientSecret: \'{{CLIENT_SECRET}}\',\n }; */\n return (\n <Elements stripe={stripePromise} /* options={options} */>\n <App/>\n \n </Elements>\n );\n};\nReactDOM.render(<Index />, document.getElementById(\'root\'));\n …Run Code Online (Sandbox Code Playgroud) 我正在使用 flutter_stripe 包,并根据他们的要求更改了 android 文件。
控制台中显示的是
/SurfaceSyncer(12958): Failed to find sync for id=0
Run Code Online (Sandbox Code Playgroud)
有时也表现出
/SurfaceSyncer(12958): Failed to find sync for id=1
Run Code Online (Sandbox Code Playgroud)
和
/SurfaceSyncer(12958): Failed to find sync for id=2
Run Code Online (Sandbox Code Playgroud)
这是什么意思?付款也不起作用。它显示付款单。输入卡详细信息后,网络挂钩的网络视图会出现,然后消失。然后什么也没有发生。付款状态不完整。请帮助我
项目级构建 Gradle
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) { …Run Code Online (Sandbox Code Playgroud) android stripe-payments flutter flutter-dependencies flutter-stripe
我正在尝试将Stripe集成到我的购物车项目中.我无法提交结帐表单.我不断收到此错误消息:"必须提供来源或客户." 要么我没有正确设置我的Stripe帐户,要么我在我的javascript中缺少一些参数.我花了好几个小时才解决这个问题,但仍然无法理解.
这是来自Stripe的日志:
Parsed Request POST Body
{
"amount": "21000",
"currency": "usd",
"description": "Test Charge"
}
Run Code Online (Sandbox Code Playgroud)
响应机构
{
"error": {
"type": "invalid_request_error",
"message": "Must provide source or customer."
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的app.js.
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var expressHbs = require('express-handlebars');
var mongoose = require('mongoose');
var session = require('express-session');
var passport = require('passport');
var flash = require('connect-flash');
var validator = require('express-validator');
var …Run Code Online (Sandbox Code Playgroud) stripe-payments ×10
javascript ×3
next.js ×2
reactjs ×2
android ×1
asp.net-mvc ×1
c# ×1
checkout ×1
command-line ×1
flutter ×1
mongodb ×1
node.js ×1
swift ×1
webhooks ×1
xcode ×1