firebase.auth를 사용하지 않고 Firestore에서 Stripe 결제를 구현하는 방법
P粉731861241
P粉731861241 2023-09-01 22:10:29
0
1
486
<p>Node.js 앱에서 Stripe 결제를 사용하여 WhatsApp 사용자에게 제품을 판매하려고 합니다. </p> <p>스트라이프 확장 프로그램(stripe/firestore-stripe-paids@0.3.3)을 설치하고 설명서의 지침을 따랐습니다. </p> <pre class="brush:php;toolbar:false;">const docRef = DB 대기 .collection('고객') .doc(현재사용자.uid) .collection('checkout_sessions') .추가하다({ 가격: 'price_1GqIC8HYgolSxxxxxxxxx', 성공_URL: window.location.origin, cancel_url: window.location.origin, }); // 확장이 CheckoutSession을 첨부할 때까지 기다립니다. docRef.onSnapshot((스냅) => { const { 오류, URL } = snap.data(); if (오류) { // 클라이언트에 오류를 표시하고 Firebase 콘솔에서 클라우드 함수 로그를 확인합니다. Alert(`오류가 발생했습니다: ${error.message}`); } 만약 (URL) { // Stripe Checkout URL이 있으므로 리디렉션하겠습니다. 창.위치.할당(url); } });</pre> <p>클라우드 콘솔에 다음 오류가 표시됩니다. </p> <p><code>❗️[오류]: [maxxxxxxxxxA] 문서에 대한 Checkout 세션을 생성하지 못했습니다. 제공된 식별자에 해당 사용자 레코드가 없습니다. </code></p> <p>Firebase 인증에서 userId를 사용해야 한다는 것을 알았지만, 함수(백엔드 서버)에서 서비스를 실행하고 있기 때문에 인증에 클라이언트/사용자가 없습니다. </p> <p>(개별) 스트라이프 결제 링크를 만드는 다른 방법이 있나요? 클라이언트 없이 Firebase 인증을 사용할 수 있는 방법이 있나요? </p> <p>미리 감사드립니다. </p> <p>인증을 사용해 보았습니다.</p> <pre class="brush:php;toolbar:false;">"firebase/auth"에서 { getAuth } 가져오기;; const 인증 = getAuth(); const user = auth.currentUser;</pre> <p>하지만 다음 오류가 발생합니다. <code>FirebaseError: Firebase: 소스를 통해 호스팅에 배포하지 않을 때 옵션을 제공해야 합니다. (앱/옵션 없음)</code></p> <p>저는 이것을 시도했습니다: https://stackoverflow.com/a/74732162/21612440</p> <p>and get<code>TypeError: 정의되지 않은 'getProvider' 속성을 읽을 수 없습니다('getProvider' 읽기)</code></p>
P粉731861241
P粉731861241

모든 응답(1)
P粉821274260

클라우드 기능(원칙적으로)은 현재 인증된 사용자의 컨텍스트 없이 실행됩니다. 따라서 클라우드 기능에서는 각 요청이 다른 사용자로부터 올 수 있으므로 auth.currentUser는 거의 의미가 없습니다.

그러나 여기에서 원하는 UID를 Firestore 데이터베이스에 전달할 수 있습니다.doc(currentUser.uid). 따라서 다른 (안전한) 방법으로 관련 UID를 확인할 수 있는 경우 해당 값을 전달하면 Stripe 확장 프로그램이 해당사용자를 위해 이를 처리합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!