在 SwiftUI 中添加无需付款的 Stripe 信用卡
Add Stripe Credit Card without Payment in SwiftUI
我正在努力寻找一种不是 UIKit 的解决方案,或者需要您购买的解决方案。
我的项目正在尝试将 Stripe 集成到 SwiftUI 中,使用 node.js Firebase 函数进行后端处理。
我在 UIViewRepresentable 中构建了一个 STPPaymentCardTextField。这使我能够通过 State 获取客户的信用卡详细信息。
@State var params: STPPaymentMethodCardParams = STPPaymentMethodCardParams()
SwiftUI 文本字段
StripePaymentCardTextField(cardParams: $params, isValid: $isValid)
然后我们可以像这样构建 paymentMethodParms..
let paymentMethodParams = STPPaymentMethodParams(card: params, billingDetails: billingDetails, metadata: nil)
现在我可以轻松地将信用卡详细信息传递到我的后端并使用
手动添加卡
添加支付方式功能
const createPaymentMethods = functions.https.onCall(async (data, context) => {
const paymentMethod = await stripe.paymentMethods.create({
customer: '{{CUSTOMER_ID}}',
payment_method: '{{PAYMENT_METHOD_ID}}',
}, {
stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
});
}
但我知道这是不好的做法。
我发现这个 post 可能是“重复的”,但却是最接近的相关答案。 。然而,该用户正在使用 reactjs 并希望将信用卡详细信息存储在数据库中,我只想将其传递给 Stripe。
有没有办法可以将信用卡数据发送到 Stripe,取回 paymentMethod ID,然后将其传递到我的后端或其他什么?我已经解决了订阅和购买收费问题,我只是无法在不经过付款设置流程的情况下进行信用卡设置。我希望用户在设置中创建新帐户时手动添加信用卡 and/or。
你能调用 stripe-ios 的 createPaymentMethod()
函数 [0] 吗?这是您的 SwiftUI 应用程序将调用的客户端函数,用于将卡详细信息从 paymentMethodParams
标记为 PaymentMethod 对象。然后您可以将该 ID 服务器端传递给客户。
为了扩展@hmunoz 的回答和我让它工作的方式如下。
- 为您的用户创建一个 Stripe 帐户。 https://stripe.com/docs/api/customers/create
- 在用户的 Firestore 数据库中记录客户条带 ID,以便于参考。
- 为您的前端创建一个“添加卡”视图并调用添加付款方式功能。 https://stripe.com/docs/api/cards/create
- 结帐时,只要在付款意向中传递了客户的条带 ID,它就应该使用他们保存的付款方式进行填充。
总而言之,最好跟踪已登录的用户,以便您可以自始至终执行任何需要的 CRUD。
我正在努力寻找一种不是 UIKit 的解决方案,或者需要您购买的解决方案。
我的项目正在尝试将 Stripe 集成到 SwiftUI 中,使用 node.js Firebase 函数进行后端处理。
我在 UIViewRepresentable 中构建了一个 STPPaymentCardTextField。这使我能够通过 State 获取客户的信用卡详细信息。
@State var params: STPPaymentMethodCardParams = STPPaymentMethodCardParams()
SwiftUI 文本字段
StripePaymentCardTextField(cardParams: $params, isValid: $isValid)
然后我们可以像这样构建 paymentMethodParms..
let paymentMethodParams = STPPaymentMethodParams(card: params, billingDetails: billingDetails, metadata: nil)
现在我可以轻松地将信用卡详细信息传递到我的后端并使用
手动添加卡添加支付方式功能
const createPaymentMethods = functions.https.onCall(async (data, context) => {
const paymentMethod = await stripe.paymentMethods.create({
customer: '{{CUSTOMER_ID}}',
payment_method: '{{PAYMENT_METHOD_ID}}',
}, {
stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
});
}
但我知道这是不好的做法。
我发现这个 post 可能是“重复的”,但却是最接近的相关答案。
有没有办法可以将信用卡数据发送到 Stripe,取回 paymentMethod ID,然后将其传递到我的后端或其他什么?我已经解决了订阅和购买收费问题,我只是无法在不经过付款设置流程的情况下进行信用卡设置。我希望用户在设置中创建新帐户时手动添加信用卡 and/or。
你能调用 stripe-ios 的 createPaymentMethod()
函数 [0] 吗?这是您的 SwiftUI 应用程序将调用的客户端函数,用于将卡详细信息从 paymentMethodParams
标记为 PaymentMethod 对象。然后您可以将该 ID 服务器端传递给客户。
为了扩展@hmunoz 的回答和我让它工作的方式如下。
- 为您的用户创建一个 Stripe 帐户。 https://stripe.com/docs/api/customers/create
- 在用户的 Firestore 数据库中记录客户条带 ID,以便于参考。
- 为您的前端创建一个“添加卡”视图并调用添加付款方式功能。 https://stripe.com/docs/api/cards/create
- 结帐时,只要在付款意向中传递了客户的条带 ID,它就应该使用他们保存的付款方式进行填充。
总而言之,最好跟踪已登录的用户,以便您可以自始至终执行任何需要的 CRUD。