在SwiftUI中添加无需支付的Stripe信用卡



我很难找到一个不是UIKit的解决方案,或者一个需要购买的解决方案。

我的项目试图在SwiftUI中集成Stripe,使用node.js Firebase函数进行后端处理。

我在UIViewRepresentable中构建了一个STPPaymentCardTextField。这使我可以通过State获得客户的信用卡详细信息。

@State var params: STPPaymentMethodCardParams = STPPaymentMethodCardParams()

SwiftUI文本字段

StripePaymentCardTextField(cardParams: $params, isValid: $isValid)

然后我们可以建立像…这样的支付方法。。

 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}}',
        });
    
}

但我知道这是不好的做法。我发现这个帖子可能是";"重复";,但却是最相关的答案。添加客户';s条纹中的信用卡信息。然而,该用户正在使用reactjs,并希望将信用卡详细信息存储在数据库中,我只想将其传递给Stripe。

难道我没有办法将信用卡数据发送到Stripe,取回paymentMethod ID,然后将其传递到我的后端或其他什么地方吗?我已经解决了订阅和购买收费问题,如果不经过付款设置过程,我就无法设置信用卡。我希望用户在创建新帐户和/或在设置中手动添加信用卡。

您能调用stripe ios的createPaymentMethod()函数[0]吗?这是SwiftUI应用程序将调用的一个客户端函数,用于将paymentMethodParams中的卡详细信息标记到PaymentMethod对象中。然后,您可以在服务器端传递该ID以附加到Customer。

[0]https://stripe.dev/stripe-ios/docs/Classes/STPAPIClient.html#/c:@CM@Stripe@objc(cs(STPAPIClient(im(createPaymentMethodWithPayment:完成:

要扩展@hmunoz的答案以及我实现这一点的方法如下。

  1. 为您的用户创建Stripe帐户。https://stripe.com/docs/api/customers/create
  2. 将客户条带id记录在用户的Firestore数据库中,以便于参考
  3. 创建一个";添加卡片";查看您的前端并调用add payment method函数。https://stripe.com/docs/api/cards/create
  4. 结账时,只要客户的条纹ID在付款意向中被传递,它就应该用他们保存的付款方式填充

总之,最好跟踪已登录的用户,以便您可以在整个过程中执行所需的任何CRUD。

相关内容

  • 没有找到相关文章

最新更新