Python 支付整合开发包如何使用

轻量级支付方式整合集成,实现支付与业务完全剥离,快速简单完成支付模块的开发

欢迎大家 fork 或 star 项目地址


Python 支付整合开发包如何使用
3 回复

对于Python支付整合,我推荐使用stripe库,它提供了完整的支付解决方案。下面是一个完整的信用卡支付示例:

import stripe

# 设置API密钥
stripe.api_key = "sk_test_your_secret_key"

def create_payment_intent(amount, currency='usd'):
    """
    创建支付意向
    :param amount: 金额(单位:分)
    :param currency: 货币类型
    :return: 支付意向对象
    """
    try:
        intent = stripe.PaymentIntent.create(
            amount=amount,
            currency=currency,
            payment_method_types=['card'],
            metadata={'order_id': '12345'}
        )
        return intent
    except stripe.error.StripeError as e:
        print(f"支付创建失败: {e}")
        return None

def confirm_payment(payment_intent_id, payment_method_id):
    """
    确认支付
    :param payment_intent_id: 支付意向ID
    :param payment_method_id: 支付方式ID
    :return: 确认结果
    """
    try:
        intent = stripe.PaymentIntent.confirm(
            payment_intent_id,
            payment_method=payment_method_id
        )
        return intent.status == 'succeeded'
    except stripe.error.StripeError as e:
        print(f"支付确认失败: {e}")
        return False

# 使用示例
if __name__ == "__main__":
    # 创建100美元的支付
    intent = create_payment_intent(10000)  # 100美元 = 10000美分
    
    if intent:
        print(f"客户端密钥: {intent.client_secret}")
        print(f"支付意向ID: {intent.id}")
        
        # 在实际应用中,前端使用client_secret完成支付
        # 然后后端确认支付
        # success = confirm_payment(intent.id, "pm_card_visa")

对于Webhook处理(支付成功回调):

from flask import Flask, request, jsonify
import stripe

app = Flask(__name__)
stripe.api_key = "sk_test_your_secret_key"
endpoint_secret = "whsec_your_webhook_secret"

@app.route('/webhook', methods=['POST'])
def webhook():
    payload = request.get_data()
    sig_header = request.headers.get('Stripe-Signature')

    try:
        event = stripe.Webhook.construct_event(
            payload, sig_header, endpoint_secret
        )
    except ValueError:
        return 'Invalid payload', 400
    except stripe.error.SignatureVerificationError:
        return 'Invalid signature', 400

    # 处理支付成功事件
    if event['type'] == 'payment_intent.succeeded':
        payment_intent = event['data']['object']
        print(f"订单 {payment_intent['metadata']['order_id']} 支付成功")
        # 更新订单状态等业务逻辑

    return jsonify({'status': 'success'}), 200

基本使用流程:1)安装pip install stripe;2)获取API密钥;3)前端收集支付信息;4)后端创建和确认支付;5)设置Webhook处理异步通知。

总结:用stripe库按文档流程走就行。


能留个 QQ 号交流下吗?

已 Watching

回到顶部