Rumah >pembangunan bahagian belakang >Tutorial Python >Mencipta Data Ujian Stripe dalam Python

Mencipta Data Ujian Stripe dalam Python

Patricia Arquette
Patricia Arquetteasal
2024-12-28 10:37:10712semak imbas

Kami telah mengusahakan kursus data AI baharu untuk menunjukkan cara anda boleh membina bot sembang AI dengan mengalihkan data e-dagang daripada Stripe ke PGVector yang berjalan di Supabase, melalui penyambung PGVector Airbyte untuk mencipta pembenaman OpenAI, menggunakan perpustakaan klien OpenAI untuk menambah sokongan bahasa semula jadi ke dalam apl. Ini ialah corak aplikasi "tindanan data pintar" yang biasa digunakan oleh ramai pelanggan kami. Sumber dan destinasi mungkin berubah, tetapi corak (sumber data > alihkan data dan buat pembenaman > stor data berdaya vektor > apl web dengan OpenAI) kekal sama.

Creating Stripe Test Data in Python

Memandangkan kami sedang mengusahakan kursus yang bertujuan untuk digunakan oleh orang ramai, kami ingin membuat persediaan semudah mungkin. Sebahagian besar daripada ini ialah mencipta data ujian yang mencukupi dalam Stripe supaya terdapat set data yang munasabah untuk chatbot berinteraksi. Jika anda pernah menggunakan Stripe sebelum ini, anda tahu mereka mempunyai Kotak Pasir yang hebat untuk anda mencubanya. Satu-satunya masalah ialah ia tidak mempunyai data sampel yang dipramuat.

Terdapat beberapa set data sampel yang boleh anda muatkan melalui arahan lekapan CLI. Tetapi, untuk kegunaan kami, ini tidak menepati keperluan. Kami mahukan set data yang lebih besar, dan memandangkan bahan ini akan digunakan dalam talian dan dalam bengkel, meminta pelajar memasang sesuatu, seperti CLI, pada mesin tempatan mereka membuka anda kepada pelbagai urusan yang rumit. Anda tidak pernah tahu versi OS yang dijalankan oleh pengguna, sama ada mereka mempunyai kebenaran yang betul untuk memasang sesuatu, dan banyak lagi. Saya telah terlalu banyak kali terbakar untuk pergi ke jalan itu.

Syukurlah, Stripe juga mempunyai API yang hebat, dan pelanggan Python yang hebat yang bermakna kami boleh mencipta buku nota kerjasama dengan cepat untuk pelajar menjalankan dan memasukkan data yang kami mahukan.

Selepas memasang pustaka stripe melalui !pip install stripe dan menghantar kunci ujian menggunakan rahsia Google Collab, kami terpaksa menyediakan beberapa nama rawak untuk pelanggan dan produk. Matlamatnya adalah untuk memasukkan pelanggan koleksi rawak, produk dengan harga yang berbeza, dan pembelian. Dengan cara ini apabila kami bertanya soalan chatbot seperti "siapa yang membuat pembelian paling murah? Berapa banyak yang mereka bayar dan apakah yang mereka beli?" terdapat data yang mencukupi.

import stripe
import random
from google.colab import userdata


stripe.api_key = userdata.get('STRIPE_TEST_KEY')


# Sample data for generating random names
first_names = ["Alice", "Bob", "Charlie", "Diana", "Eve", "Frank", "Grace", "Hank", "Ivy", "Jack", "Quinton", "Akriti", "Justin", "Marcos"]
last_names = ["Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor", "Wall", "Chau", "Keswani", "Marx"]
# Sample clothing product names
clothing_names = [
    "T-Shirt", "Jeans", "Jacket", "Sweater", "Hoodie",
    "Shorts", "Dress", "Blouse", "Skirt", "Pants",
    "Shoes", "Sandals", "Sneakers", "Socks", "Hat",
    "Scarf", "Gloves", "Coat", "Belt", "Tie",
    "Tank Top", "Cardigan", "Overalls", "Tracksuit", "Polo Shirt",
    "Cargo Pants", "Capris", "Dungarees", "Boots", "Cufflinks",
    "Raincoat", "Peacoat", "Blazer", "Slippers", "Underwear",
    "Leggings", "Windbreaker", "Tracksuit Bottoms", "Beanie", "Bikini"
]
# List of random colors
colors = [
    "Red", "Blue", "Green", "Yellow", "Black", "White", "Gray",
    "Pink", "Purple", "Orange", "Brown", "Teal", "Navy", "Maroon",
    "Gold", "Silver", "Beige", "Lavender", "Turquoise", "Coral"
]

Seterusnya, tiba masanya untuk menambah fungsi bagi setiap jenis data dalam Stripe yang kami perlukan.

# Function to create sample customers with random names
def create_customers(count=5):
    customers = []
    for _ in range(count):
        first_name = random.choice(first_names)
        last_name = random.choice(last_names)
        name = f"{first_name} {last_name}"
        email = f"{first_name.lower()}.{last_name.lower()}@example.com"

        customer = stripe.Customer.create(
            name=name,
            email=email,
            description="Sample customer for testing"
        )
        customers.append(customer)
        print(f"Created Customer: {customer['name']} (ID: {customer['id']})")
    return customers

# Function to create sample products with random clothing names and colors
def create_products(count=3):
    products = []
    for _ in range(count):
        color = random.choice(colors)
        product_name = random.choice(clothing_names)
        full_name = f"{color} {product_name}"
        product = stripe.Product.create(
            name=full_name,
            description=f"This is a {color.lower()} {product_name.lower()}"
        )
        products.append(product)
        print(f"Created Product: {product['name']} (ID: {product['id']})")
    return products

# Function to create prices for the products with random unit_amount
def create_prices(products, min_price=500, max_price=5000):
    prices = []
    for product in products:
        unit_amount = random.randint(min_price, max_price)  # Random amount in cents
        price = stripe.Price.create(
            unit_amount=unit_amount,
            currency="usd",
            product=product['id']
        )
        prices.append(price)
        print(f"Created Price: ${unit_amount / 100:.2f} for Product {product['name']} (ID: {price['id']})")
    return prices

# Function to create random purchases for each customer
def create_purchases(customers, prices, max_purchases_per_customer=5):
    purchases = []
    for customer in customers:
        num_purchases = random.randint(1, max_purchases_per_customer)  # Random number of purchases per customer
        for _ in range(num_purchases):
            price = random.choice(prices)  # Randomly select a product's price
            purchase = stripe.PaymentIntent.create(
                amount=price['unit_amount'],  # Amount in cents
                currency=price['currency'],
                customer=customer['id'],
                payment_method_types=["card"],  # Simulate card payment
                description=f"Purchase of {price['product']} by {customer['name']}"
            )
            purchases.append(purchase)
            print(f"Created Purchase for Customer {customer['name']} (Amount: ${price['unit_amount'] / 100:.2f})")
    return purchases

Yang tinggal hanyalah menjalankan skrip dan menentukan jumlah data yang kami perlukan.

# Main function to create sample data
def main():
    print("Creating sample customers with random names...")
    customers = create_customers(count=20)

    print("\nCreating sample products with random clothing names and colors...")
    products = create_products(count=30)

    print("\nCreating prices for products with random amounts...")
    prices = create_prices(products, min_price=500, max_price=5000)

    print("\nCreating random purchases for each customer...")
    purchases = create_purchases(customers, prices, max_purchases_per_customer=10)

    print("\nSample data creation complete!")
    print(f"Created {len(customers)} customers, {len(products)} products, and {len(purchases)} purchases.")

if __name__ == "__main__":
    main()

Dengan data yang dimuatkan ke dalam Kotak Pasir Stripe kami, menyambungkannya ke Airbyte hanya mengambil masa beberapa minit dengan menggunakan Pembina Penyambung untuk memetakan titik akhir API kepada strim untuk setiap jenis data dan menyediakan kerja penyegerakan.

Creating Stripe Test Data in Python

Masalah selesai! Skrip Collab Python kami sangat mudah untuk pelajar memasukkan data ujian ke dalam Stripe. Semoga ia berguna untuk orang lain yang melakukan ujian serupa.

Atas ialah kandungan terperinci Mencipta Data Ujian Stripe dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn