天道酬勤,学无止境

Stripe 与 iOS 上的 Firebase 集成(Stripe Integration With Firebase on iOS)

问题

我正在构建一个使用 Firebase 作为后端的 iOS 应用程序,并希望在没有外部服务器的情况下实现 Stripe。 我已经查看过这篇文章:Firebase 支付网关? - 它显示了有关 Stripe 的付款流程/网关的以下流程:

  1. 用户在您的网站上发起交易
  2. 客户端代码将他们发送到 Stripe 以输入他们的 CC 信息
  3. 客户端代码获取代表安全交易的令牌
  4. 当交易被验证时,条带通知服务器进程
  5. 服务器用token提交支付授权
  6. Stripe 向服务器进程或 Zapier发送交易收据,该收据将存储回 Firebase

我已经就 Zapier联系过 Firebase ,他们告诉我 Zapier 不再支持这个过程。 另外:与需要在服务器端生成令牌的 Braintree 不同,Stripe 的密钥与我的帐户相关联。

从理论上讲,我将能够使用 Firebase 的 REST API 在没有外部服务器的情况下集成 Stripe,对吗?

我们可以使用任何 Firebase 实时数据库 URL 作为 REST 端点。 我们需要做的就是将 .json 附加到 URL 的末尾,并从我们最喜欢的 HTTPS 客户端发送请求。 https://firebase.google.com/docs/database/rest/start

任何帮助都非常感谢,谢谢!

回答1

步骤 4、5 和 ~6 仍然需要运行 Stripe 的 API 库之一或其第三方集成之一的服务器端应用程序。

6 似乎是在描述 webhooks,并且可以将 Stripe webhooks 直接连接到 Firebase 的“保存”URL,但最终您需要某种应用程序来处理服务器上的费用。

回答2

这似乎表明 firebase 现在无需外部服务器即可支持条带支付:https://firebase.google.com/docs/use-cases/payments

他们在这里有一些示例代码和说明:https://github.com/firebase/functions-samples/tree/master/stripe

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Stripe Integration With Firebase on iOS
    I'm building an iOS application using Firebase as my backend and want to implement Stripe without an external server. I've already checked out this post: Firebase payment gateways? — and it shows the following process regarding Stripe's payment process/gateway: User initiates transaction on your site Client code sends them to Stripe to enter their CC info Client code obtains a token representing the secure transaction A server process is notified by stripe when the transaction is validated The server submits the payment authorization with the token Stripe sends a transaction receipt to the
  • “Unexpected token stripe” when trying to deploy Firebase Functions
    I'm trying to incorporate Stripe into an iOS app using Firebase Functions. I'm following the Stripe documentation for "Accepting a payment" in Swift with Node backend. I first did npm install --save stripe. That finished with no errors. Then I did npm install. My index.js looks like this so far: // // Create and Deploy Your First Cloud Functions // // https://firebase.google.com/docs/functions/write-firebase-functions // // exports.helloWorld = functions.https.onRequest((request, response) => { // response.send("Hello from Firebase!"); // }); const functions = require('firebase-functions')
  • Properly Using Firebase Cloud Functions and Stripe
    I am trying to use Firebase Cloud functions and Stripe, and iOS (Swift). I want to use Firebase Cloud functions to perform the card charge as is required by Stripe. I am trying to use this example: Firebase Stripe Example I uploaded the example they gave, but I need to modify the charge function slightly. I tried setting it to the file path I have in my real time data base, but I am not sure how to modify the entire thing so that It will work off of my realtime database structure. Such as grabbing the parameters it needs. Here is what my structure looks like: after the Payments node is the
  • 如何为Firebase构建Cloud Functions以从多个文件部署多个功能?(How do I structure Cloud Functions for Firebase to deploy multiple functions from multiple files?)
    问题 我想为Firebase创建多个Cloud Functions,并从一个项目同时部署所有这些功能。 我也想将每个函数分成一个单独的文件。 当前,如果将它们都放在index.js中,则可以创建多个函数,例如: exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); 但是我想把foo和bar放在单独的文件中。 我尝试了这个: /functions |--index.js (blank) |--foo.js |--bar.js |--package.json foo.js在哪里 exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); 而bar.js是 exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); 有没有一种方法可以在不将所有功能都放入index.js的情况下完成此操作? 回答1 嗯,Firebase的Cloud Functions负载节点模块正常运行,所以可以 结构体:
  • Firebase 支付网关?(Firebase payment gateways?)
    问题 我目前正在评估 Firebase 是否适合我正在制作的应用。 我发现的唯一潜在症结是付款——目前有哪些选择? 回答1 Firebase 是一个实时数据存储,专注于快速、可扩展的解决方案,用于同时在数百到数百万个客户端之间共享数据。 它在内部不提供任何支付处理解决方案。 像 Stripe 这样的第三方服务可以很容易地与 Firebase 集成,而像 Zapier 这样的工具可以帮助在交易完成后将数据从 Stripe 推送回 Firebase。 通常,该过程如下所示: 用户在您的网站上发起交易客户端代码将他们发送到 Stripe 以输入他们的 CC 信息客户端代码获取代表安全交易的令牌当交易被验证时,条带通知服务器进程服务器用token提交支付授权 Stripe 向服务器进程或 Zapier 发送交易收据,该收据将存储回 Firebase 这种方法的一个优点是您不会存储任何信用卡或敏感数据,因此不受 PCI 合规性和严格的银行/电子商务法规的约束。
  • 如何为Rails上的Stripe Checkout编写集成测试?(How to write integration tests for Stripe checkout on Rails?)
    问题 我碰壁试图为我的Rails 3.2应用程序编写Stripe的checkout.js [https://checkout.stripe.com/checkout.js]的集成测试。 手动测试(使用Stripe的测试键)时,Stripe checkout对我来说正常工作,但是我无法让fill_in检测并fill_in Stripe checkout iframe模式中的电子邮件字段。 我使用无头JavaScript的poltergeist ,尽管也用capybara-webkit甚至是硒测试了相同的问题。 我要测试的是完整的订阅注册流程,以显示新用户可以在Stripe中输入他们的付款详细信息后创建一个订户帐户-但我无法超越Stripe结帐弹出窗口。 这是我before .. do : describe "show Stripe checkout", :js => true do before do visit pricing_path click_button 'plan-illuminated' stripe_iframe = all('iframe[name=stripe_checkout_app]').last Capybara.within_frame stripe_iframe do fill_in "email", :with => "test-user
  • 条纹集成问题(Stripe Integrating Issues)
    问题 我在我的项目中安装了“条纹”。 但是,当我按照 Stripe 网站上的说明在我的 AppDelegate 中集成和“导入 Stripe”时,它显示“无模块”并且不起作用/出现错误。 难道我做错了什么? 回答1 尝试这个: 更新 Podfile use_frameworks! target '**{YOUR_PROJECT_NAME}**' do pod 'Stripe' end 删除 Podfile.lock 和 Pod。 安装pod后 您的示例代码 AppDelegate.swift import UIKit import Stripe @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { STPPaymentConfiguration.sharedConfiguration().publishableKey = "pk_test_6pRNASCoBOKtIshFeQd4XMUh" // do
  • Firebase Cloud Functions - Stripe Connect Webhook not firing
    I'm trying to set up my stripe webhooks to fire invoking a firebase cloud function automatically whenever a Stripe Connect account is created, updated, or anything at this point. It only fires if I manually go to the Stripe Dashboard > Webhooks and hit the "send test webhook button". so far what I've done: 1) created a Stripe Connect Webhook: 2) set up Webhook endpoint with firebase URL 3) set up node.js Firebase Cloud function to fire whenever stripe's webhook pings the Firebase URL. const admin = require('firebase-admin'); const functions = require('firebase-functions'); admin.initializeApp
  • cocoa os x 应用程序上的 Firebase 通知集成(Firebase Notification Integration on cocoa os x application)
    问题 我目前正在研发将 firebase 添加到 mac os x 应用程序。 我找到了一个 pod 'FirebaseOSX'并安装了它,但我找不到如何通过 firebase 集成推送通知功能,如可可应用程序中的 IOS 和 android。 有人这样做吗? 请帮忙! 谢谢, 任何帮助将不胜感激。 回答1 Firebase 目前仅适用于 iOS。 FirebaseOSX pod 是仅包含实时数据库的旧版 pod,在 2016 年 Google I/O 上 Firebase 扩展之前创建。 回答2 现在,GitHub 上提供了社区支持的 Firebase 对 macOS 的支持。
  • Run Subscription Payments with Stripe Firebase Extension Webhook Not Firing
    I added in the Stripe Subscriptions extension to my Firebase/Vue application so I can manage subscription plans for my customers, but I'm having problems with what I believe is the Stripe webhook. I started off the extension installation by setting the firebase.rules like they said in the tutorial: firebase.rules: rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write; } match /customers/{uid} { allow read, write: if request.auth.uid == uid; match /checkout_sessions/{id} { allow read, write: if request.auth.uid == uid; }
  • Error connecting to Stripe from Firebase Cloud Function
    I am trying to process a credit card payment from my Android App using Firebase and Stripe. I have retrieved a Stripe token on my client, and I am using a database trigger in my Firebase Cloud Function to catch when a new order is posted. Here is my function code. const stripe = require('stripe')('sk_test_XXXXXXXXXXXXXXXXXXXXXXXX'); return admin.database() .ref() .child('orders') .child(userId) .child(orderId) .child('token') .once('value') .then(snapshot => { return snapshot.val(); }) .then(token => { const amount = order.amount; console.log('Amount:', amount); console.log('token:', token.id)
  • wait until trigger is fired on firebase in ionic-angular
    In my ionic app I am calling a Firebase Authentication trigger in Cloud Functions, which creates a Stripe customer. When the Stripe customer is created it stores customer id to Firebase Realtime Database. Problem comes here, the Stripe API takes time to create customer. Until then, my execute to next statement and looks for customer_id of stripe (which is still not generated) and code breaks. How do I make my code to wait until stripe user is created and customer_id is stored to database before moving to next statement. NOTE: if I place debug point in console it waits for a moment then it goes
  • 在处理 IM 应用程序之前,我需要了解什么?(What do I need to know before working on an IM application?)
    问题 我正在研究使用 Java 堆栈(至少对于服务器)构建 IM 类型的应用程序。 我有兴趣查看有关 Skype/AIM/MSN 等应用程序如何工作的任何信息/建议,以及了解可能相关的任何技术/API。 在不透露想法本身的情况下,它可能更类似于 Google Wave,而不是 Skype,但是非常欢迎对两者都有用的信息。 我已经想到的具体点包括: 服务器 Vs P2P ......出于记录我的系统的原因,所有通信都需要通过中央服务器。 这是其他 IM 工具的工作方式吗……尤其是当音频/视频进入等式时? 与其他系统的交叉通信。 是否有用于此的 API,还是所有 IM 提供商都在努力保护他们的协议秘密? 我正在设计的本质意味着集成可能只是有限的,但从商业角度来看这绝对是值得的 回答1 了解 XMPP。 有很多 Java 库,大多数主要的 IM 客户端都支持 XMPP。 回答2 如前所述,使用 XMPP(代表可扩展消息传递和在线协议)。 您可能可以通过使用现有的 XMPP 服务器(例如 Openfire、ejabberd 等)而无需自己编程。 有一种叫做 libpurple 的东西,用于使用专有 IM 协议进行连接。 对于标准 XMPP 不能做的事情,您可以查看客户端机器人或外部服务器组件。 回答3 构建移动消息应用程序有两种方法: 聊天功能开发:
  • iOS-Swift, Stripe createEphemeralKeys Returning Google SignIn Page
    Hi I am trying to get ephemeral key using Firebase cloud function, below is my Swift file & node’s file .swift class VIARestClient: NSObject, STPEphemeralKeyProvider { static let restClient = VIARestClient(); func createCustomerKey(withAPIVersion apiVersion: String, completion: @escaping STPJSONResponseCompletionBlock) { let URLString = API_ENDPOINT + CREATE_EMPHEREMAL_KEY as String; let custID = "cus_CEPMtLbshv7EaP"; var requestData : [String : String]? = [String : String]() requestData?.updateValue(apiVersion, forKey: "api_version"); requestData?.updateValue(custID, forKey: "customerId")
  • How to update or set property of firestore document after .onCreate cloud function trigger
    I'm currently trying to integrate Stripe with my Firebase's Cloud Firestore db through using Cloud Functions for Firebase. The onCreate trigger is happening correctly but I also want it to update or set a specific field called "customer_id" into the right document in my Users collection. I think something is a little off about how I write my function since I'm not the most experienced with javascript. I've also tried return admin.firestore().ref(`Users/${user.uid}/customer_id`).set(customer.id); 'use strict'; const functions = require('firebase-functions'); const admin = require('firebase
  • python 谷歌应用引擎条带集成(python google app engine stripe integration)
    问题 我正在做一个项目,我想在其中集成 Stripe 以进行支付。 我正在按照他们的文档将其集成到 python Stripe 文档中。 在文档中,他们下载了条带库以使用它。 下载它的代码是: pip install --upgrade stripe 我遵循了相同的步骤。 但我收到这个错误。 当我尝试将它导入我的项目时。 import stripe ImportError: No module named stripe 回答1 安装库中描述了将 3rd 方库安装到 GAE 应用程序中的正确方法: 管理它的最简单方法是使用 ./lib 目录: 使用 pip 安装库和供应商模块以启用从第三方库目录导入包。 在您的应用程序根目录中创建一个名为 lib 的目录: mkdir lib 要告诉您的应用程序如何在此目录中查找库,请在项目的根目录中创建或修改名为 appengine_config.py 的文件,然后添加以下行: from google.appengine.ext import vendor # Add any libraries installed in the "lib" folder. vendor.add('lib') 使用带有 -t lib 标志的 pip 在此目录中安装库: pip install -t lib gcloud 注意事项: 在浏览提到的文档页面时请注意
  • 条纹结帐在 android webview 中不起作用(Stripe checkout not working in android webview)
    问题 我正在开发 android 应用程序。 我工作的服务器为用户提供订阅功能,因此用户需要付费才能成为网站的会员。 现在我正在 android 应用程序中进行相同的工作,并使用 webview 来执行支付网关。 我正在 webview 中加载条纹结帐付款的网址。 但是我在 webview 中遇到了以下关于 Stripe 结账的错误。 抱歉,加载 Checkout 时出现问题。 如果这种情况仍然存在,请尝试其他浏览器。 我如何在 webview 中解决这个问题,以便它可以在我的应用程序中工作? 回答1 Stripe checkout 确实在 Android WebViews 上不起作用,但它在 iOS UIWebView 上工作......所以...... UserAgent 来拯救了! webView.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E233 Safari/601.1"); 回答2 我已将此添加到 webview 的 userAgent 并且它起作用了。 "Mozilla/5.0 (Linux; Android 4
  • Stripe Connect Firebase Functions
    Looked all over, tried capturing the code via swift but still need a function to fire off the code to get an Express account to connect. Won't waste your time with the code attempts, so looking for Firebase Functions that will setup a Stripe Connect endpoint for redirection and send back the code to finalise the process. Anyone care to help? Thanks for reading.
  • 带有Firebase集成的Swift 2.3中的Xcode 8.1 Push Notifications没有得到?(Xcode 8.1 Push Notifications in swift 2.3 with firebase integration not getting?)
    问题 我正在使用Xcode 8.1和Swift 2.3,这里我正在使用Firebase集成来获取推送通知。我不知道为什么我没有收到通知。.我的代码: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { if #available(iOS 10.0, *) { let authOptions : UNAuthorizationOptions = [.Alert, .Badge, .Sound] UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptions( authOptions, completionHandler: {_,_ in }) // For iOS 10 display notification (sent via APNS) UNUserNotificationCenter.currentNotificationCenter().delegate = self // For iOS 10 data message (sent via FCM) FIRMessaging
  • Android - “Manifest Merger Failed” Error after implementing Stripe library
    i implemented 'com.stripe:stripe-android:8.5.0' into my app gradle, and then i got the following error trying to build my project: Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.1] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory). Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:14:5-68:19 to override. My app gradle: apply plugin: