javascript - 如何为我的 django 在线电子商务网站设置 Google Pay?
问题描述
我有一个在线电子商务网站,用户可以相互交换图像我想要实现的是:卖家要求买家给他钱,买家点击“接受付款”然后设置付款他的 Google Pay 帐户,最后卖家将在他的 Google Pay 帐户中收取费用
我该怎么做?我正在使用 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 %}
解决方案
您可以使用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
推荐阅读
- mysql - mysql显示状态完成的产品和总数量
- typescript - 将整数/字符串转换为枚举成员
- spring-boot - MapStruct 映射器返回空映射对象
- android - 系统/应用程序中的 APK 何时安装?
- react-admin - react-admin v 3.9.6 的多个数据提供者
- javascript - jQuery 替换文本但不去除 HTML
- scala - 关于 option.contains() 的 Scala 问题
- angular - 为什么我不能以角度保存我的获取请求?
- python - 如何使用 Keras 进行多类分类?
- sql-server - SSMS 特定页面以及如何到达那里