【问题标题】:How to set up Google Pay for my django online ecommerce website?如何为我的 django 在线电子商务网站设置 Google Pay?
【发布时间】:2021-01-12 09:22:03
【问题描述】:

我有一个在线电子商务网站,用户可以在其中相互交换图像 我想要实现的是:卖家要求买家给他钱,买家点击“接受付款”,然后用他的谷歌支付账户设置付款,最后卖家将在他的谷歌支付账户中收取费用

我该怎么做?我正在使用 Django 3.1

这是我的贸易模型

class Trade(models.Model):
    seller = models.ForeignKey(
        User, related_name='seller', on_delete=models.CASCADE)
    buyer = models.ForeignKey(
        User, related_name='buyer', on_delete=models.CASCADE)
    price = models.IntegerField()
    date = models.DateTimeField(auto_now_add=True)

这是“Accept_trade”视图

def accept_trade(request, pk):
    trade = get_object_or_404(Trade, pk=pk)
    if request.method == 'GET':
        return render(request, 'trade/accept_trade.html', {'trade': trade})
    else:
        # PAY
        payment = Payment.objects.create(
            variant='default',
            description= 'A trade',
            total=Decimal(trade.price),
            tax=Decimal(0),
            currency='USD',
            delivery=Decimal(0),
            billing_first_name=trade.buyer.first_name,
            billing_last_name=trade.buyer.last_name,
            customer_ip_address='127.0.0.1'
        )
        payment.save()
        payment.capture()
        payment.release()
        return redirect('home')

我的 accept_trade.html

{% extends 'users/base.html' %}

{% block title %}Accept trade | {% endblock title %}


{% block content %}
<div class="shadow-lg p-3 mb-5 col-md-5 bg-white rounded float-right m-4 p-4">
    <p>Seller: {{ trade.seller.username }}</p>
    <p style="color: #2ecc71;">Price: ${{ trade.price }}</p>
</div>
<form action="{% url 'trade:accept_trade' trade.id %}" method="post" class="m-4">
    {% csrf_token%}
    <button type="submit" class="btn btn-success btn-lg" style="padding:10px 30px; border-radius: 200px; margin: 30px; letter-spacing: 1px; word-spacing: 4px;">Pay and get product</button>
</form>
{% endblock content %}

【问题讨论】:

    标签: javascript python html django google-pay


    【解决方案1】:

    您可以使用https://django-payments.readthedocs.io/en/latest/ 来执行此操作。因此,例如,您可以这样做:

    from decimal import Decimal
    
    from payments import get_payment_model
    
    Payment = get_payment_model()
    payment = Payment.objects.create(
        variant='default',  # this is the variant from PAYMENT_VARIANTS
        description='Book purchase',
        total=Decimal(120),
        tax=Decimal(20),
        currency='USD',
        delivery=Decimal(10),
        billing_first_name='Sherlock',
        billing_last_name='Holmes',
        billing_address_1='221B Baker Street',
        billing_address_2='',
        billing_city='London',
        billing_postcode='NW1 6XE',
        billing_country_code='UK',
        billing_country_area='Greater London',
        customer_ip_address='127.0.0.1')
    
    # https://django-payments.readthedocs.io/en/latest/usage.html#making-a-payment
    

    【讨论】:

    • 我正在关注文档,现在它告诉我“只能捕获具有预授权状态的付款。”我该怎么办?
    • 我不确定,但我认为它有效,我只是有几个问题,我应该在付款时将用户重定向到 payment_details 表单吗?现在用户付款后,我怎样才能让“卖家”收到他的钱?
    • @INeedHelp请我不确定您的申请如何,所以我无法回答。
    猜你喜欢
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    相关资源
    最近更新 更多