Cara melaksanakan pembayaran Stripe dalam Firestore tanpa menggunakan firebase.auth
P粉731861241
P粉731861241 2023-09-01 22:10:29
0
1
515
<p>Saya cuba menggunakan pembayaran Stripe dalam apl node.js saya untuk menjual produk kepada pengguna di whatsapp. </p> <p>Saya memasang sambungan jalur: stripe/firestore-stripe-payments@0.3.3 dan mengikut arahan dalam dokumentasi: </p> <pre class="brush:php;toolbar:false;">const docRef = tunggu db .collection('pelanggan') .doc(currentUser.uid) .collection('checkout_sessions') .Tambah({ harga: 'harga_1GqIC8HYgolSxxxxxxxxx', success_url: window.location.origin, cancel_url: window.location.origin, }); // Tunggu sambungan untuk melampirkan CheckoutSession docRef.onSnapshot((snap) => { const { ralat, url } = snap.data(); jika (ralat) { // Paparkan ralat kepada klien dan semak log fungsi awan dalam konsol Firebase. alert(`Ralat berlaku: ${error.message}`); } jika (url) { // Kami mempunyai URL Stripe Checkout, mari kita ubah hala. window.location.assign(url); } });</pre> <p>Saya menerima ralat berikut dalam konsol awan: </p> <p><kod>❗️[Ralat]: Gagal membuat sesi Checkout untuk dokumen [maxxxxxxxxxA]: Pengecam yang diberikan tidak mempunyai rekod pengguna yang sepadan. </code></p> <p>Saya mendapati bahawa saya perlu menggunakan userId daripada Firebase Authentication, tetapi memandangkan saya menjalankan perkhidmatan saya dalam fungsi (pelayan belakang), tiada klien/pengguna dalam pengesahan. </p> <p>Adakah terdapat cara lain untuk membuat pautan daftar keluar (individu)? Adakah terdapat cara untuk menggunakan Pengesahan Firebase tanpa pelanggan? </p> <p>Terima kasih terlebih dahulu. </p> <p>Saya cuba menggunakan pengesahan,</p> <pre class="brush:php;toolbar:false;">import { getAuth } daripada "firebase/auth"; const auth = getAuth(); pengguna const = auth.currentUser;</pre> <p>Tetapi saya mendapat ralat berikut: <kod>FirebaseError: Firebase: Pilihan diperlukan semasa mengatur penggunaan ke pengehosan tanpa sumber. (apl/tiada-pilihan)</kod></p> <p>Saya mencuba ini: https://stackoverflow.com/a/74732162/21612440</p> <p>dan dapatkan<kod>TypeError: Tidak boleh membaca sifat 'getProvider' yang tidak ditentukan (baca 'getProvider')</code></p>
P粉731861241
P粉731861241

membalas semua(1)
P粉821274260

Fungsi awan (pada dasarnya) berjalan tanpa konteks pengguna yang sedang disahkan. Oleh itu, dalam fungsi awan, auth.currentUser hampir tidak bermakna kerana setiap permintaan mungkin datang daripada pengguna yang berbeza.

Walau bagaimanapun, anda boleh menghantar mana-mana UID yang anda mahu ke pangkalan data Firestore di sini .doc(currentUser.uid). Jadi, jika anda boleh menentukan UID yang berkaitan dengan cara lain (selamat), anda boleh lulus nilai itu dan sambungan Stripe akan mengendalikannya untuk pengguna itu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan