跳转到主要内容

Django的简单支付

项目描述

  1. 使用pip安装django-mooch,并将mooch添加到您的INSTALLED_APPS

  2. 添加moochers应用

    from collections import OrderedDict
    
    from django.conf import settings
    from django.conf.urls import include, url
    
    from mooch.banktransfer import BankTransferMoocher
    from mooch.postfinance import PostFinanceMoocher
    from mooch.stripe import StripeMoocher
    
    from myapp.models import Thing  # Inherit mooch.models.Payment
    
    
    app_name = 'mooch'  # This is the app namespace.
    
    moochers = OrderedDict((
        ('postfinance', PostFinanceMoocher(
            model=Thing,
            pspid='thing',
            live=False,
            sha1_in=settings.POSTFINANCE_SHA1_IN,
            sha1_out=settings.POSTFINANCE_SHA1_OUT,
            app_name=app_name,
        )),
        ('stripe', StripeMoocher(
            model=Thing,
            publishable_key=settings.STRIPE_PUBLISHABLE_KEY,
            secret_key=settings.STRIPE_SECRET_KEY,
            app_name=app_name,
        )),
        ('banktransfer', BankTransferMoocher(
            model=Thing,
            autocharge=True,  # Mark all payments as successful.
            app_name=app_name,
        )),
    ]
    
    urlpatterns = [
        url(r'', moocher.urls) for moocher in moochers.values()
    ]
  3. 在其他URLconf中包含moochers应用/URLconf。

  4. 添加支付页面

    def pay(request, id):
        instance = get_object_or_404(Thing.objects.all(), id=id)
    
        return render(request, 'pay.html', {
            'thing': instance,
            'moochers': [
                moocher.payment_form(request, instance)
                for moocher in moochers.values()
            ],
        })
  5. 当发生收费时,可能需要发送确认邮件(该项目中实际上包含了一个示例模板)。请注意,与大多数其他项目不同,django-mooch使用moocher 实例作为发送者,而不是类

    from mooch.mail import render_to_mail
    from mooch.signals import post_charge
    
    # The signal handler receives the moocher instance, the payment and
    # the request.
    def send_mail(sender, payment, request, **kwargs):
        render_to_mail('mooch/thanks_mail', {
            'payment': payment,
        }, to=[payment.email]).send(fail_silently=True)
    
    # Connect the signal to our moocher instances (moochers may be used
    more than once on the same website):
    for moocher in moochers.values():
        post_charge.connect(send_mail, sender=moocher)

    如果您想区分moochers(例如,为了发送不同的邮件进行银行转账,因为支付尚未实际发生),请在连接时设置sender参数,如下所示

    # Some stuff you'll have to imagine... sorry.
    post_charge.connect(thank_you_mail, moochers['postfinance'])
    post_charge.connect(thank_you_mail, moochers['stripe'])
    post_charge.connect(please_pay_mail, moochers['banktransfer'])

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。

源代码分发

django_mooch-0.6.0.tar.gz (10.2 kB 查看哈希值)

上传时间 源代码

构建分发

django_mooch-0.6.0-py3-none-any.whl (13.9 kB 查看哈希值)

上传时间 Python 3