
关于
数字产品变现策略与实施——Stripe、订阅、定价实验、免费增值、升级流程、流失预防、收入优化和 SaaS 商业模式。
name: monetization description: "数字产品变现策略与实施 - Stripe、订阅、定价实验、免费增值、升级流程、流失预防、收入优化及 SaaS 商业模式。" risk: none source: community date_added: '2026-03-06' author: renat tags:
- monetization
- stripe
- saas
- pricing
- subscriptions tools:
- claude-code
- antigravity
- cursor
- gemini-cli
- codex-cli
变现 - 从产品到收入
概述
数字产品变现策略与实施 - Stripe、订阅、定价实验、免费增值、升级流程、流失预防、收入优化及 SaaS 商业模式。适用场景:集成 Stripe、创建订阅计划、定价策略、升级/降级、支付 webhook、免费试用、流失分析、LTV/CAC、单位经济学、商业模式。
何时使用此技能
- 当你需要该领域的专业协助时
不适用场景
- 任务与变现无关
- 更简单、更具针对性的工具可以处理该请求
- 用户需要的是通用帮助而非领域专业知识
工作原理
价格是你付出的,价值是你得到的。 - 沃伦·巴菲特 完美的变现是按照交付的价值比例来获取收益。
黄金法则
用户愿意付费的条件:
- 产品解决了真实问题(需求)
- 解决方案优于替代品(差异化)
- 价格被认为是公平的(价值感知)
- 收费时机自然(时机)
经典错误
- 在展示价值之前收费(扼杀激活)
- 价格过低(暗示低质量)
- 计划过多(选择瘫痪)
- 试用不需要信用卡(低转化率)
- 流失不可见(没有即将取消的警报)
初始设置
pip install stripe
## 或者
npm install stripe
## Config.Py
import stripe
import os
stripe.api_key = os.environ["STRIPE_SECRET_KEY"]
STRIPE_WEBHOOK_SECRET = os.environ["STRIPE_WEBHOOK_SECRET"]
PLANS = {
"free": None,
"pro": os.environ["STRIPE_PRICE_PRO"],
"business": os.environ["STRIPE_PRICE_BIZ"],
}
创建客户和订阅
def create_customer(email: str, name: str, user_id: str) -> str:
customer = stripe.Customer.create(
email=email,
name=name,
metadata={"user_id": user_id}
)
return customer.id
def create_subscription(customer_id: str, price_id: str, trial_days: int = 14):
subscription = stripe.Subscription.create(
customer=customer_id,
items=[{"price": price_id}],
trial_period_days=trial_days,
payment_behavior="default_incomplete",
expand=["latest_invoice.payment_intent"],
)
return {
"subscription_id": subscription.id,
"client_secret": subscription.latest_invoice.payment_intent.client_secret,
"status": subscription.status
}
Checkout Session(推荐用于提高转化率)
def create_checkout_session(
customer_id: str,
price_id: str,
success_url: str,
cancel_url: str,
trial_days: int = 14
) -> str:
session = stripe.checkout.Session.create(
customer=customer_id,
mode="subscription",
line_items=[{"price": price_id, "quantity": 1}],
subscription_data={"trial_period_days": trial_days},
success_url=success_url + "?session_id={CHECKOUT_SESSION_ID}",
cancel_url=cancel_url,
allow_promotion_codes=True,
)
return session.url
客户门户(自助服务)
def create_portal_session(customer_id: str, return_url: str) -> str:
session = stripe.billing_portal.Session.create(
customer=customer_id,
return_url=return_url,
)
return session.url
Webhook - 处理事件
from fastapi import Request, HTTPException
import stripe
async def stripe_webhook(request: Request):
payload = await request.body()
sig_header = request.headers.get("stripe-signature")
try:
event = stripe.Webhook.construct_event(
payload, sig_header, STRIPE_WEBHOOK_SECRET
)
except ValueError:
raise HTTPException(status_code=400, detail="Invalid payload")
except stripe.error.SignatureVerificationError:
raise HTTPException(status_code=400, detail="Invalid signature")
handlers = {
"customer.subscription.created": handle_subscription_created,
"customer.subscription.updated": handle_subscription_updated,
"customer.subscription.deleted": handle_subscription_deleted,
"invoice.payment_succeeded": handle_payment_succeeded,
"invoice.payment_failed": handle_payment_failed,
"customer.subscription.trial_will_end": handle_trial_ending,
}
handler = handlers.get(event["type"])
if handler:
await handler(event["data"]["object"])
return {"status": "ok"}
验证订阅状态
def check_subscription_status(customer_id: str) -> dict:
subscriptions = stripe.Subscription.list(
customer=customer_id,
status="all",
limit=1
)
if not subscriptions.data:
return {"plan": "free", "status": "none"}
sub = subscriptions.data[0]
return {
"plan": sub.items.data[0].price.lookup_key,
"status": sub.status,
"current_period_end": sub.current_period_end,
"cancel_at_period_end": sub.cancel_at_period_end
}
兼容工具
Claude CodeCursor
标签
SaaS
