[credit card] implement payment

This commit is contained in:
Nico Schottelius 2020-12-29 01:43:33 +01:00
commit 1b06d8ee03
16 changed files with 290 additions and 64 deletions

View file

@ -4,17 +4,33 @@ from uncloud_auth.serializers import UserSerializer
from django.utils.translation import gettext_lazy as _
from .models import *
import uncloud_pay.stripe as uncloud_stripe
###
# 2020-12 Checked code
class StripeCreditCardSerializer(serializers.ModelSerializer):
class Meta:
model = StripeCreditCard
exclude = ['card_id', "owner" ]
exclude = [ "card_id", "owner" ]
read_only_fields = [ "last4", "brand", "expiry_date" ]
class PaymentSerializer(serializers.ModelSerializer):
owner = serializers.HiddenField(default=serializers.CurrentUserDefault())
class Meta:
model = Payment
fields = '__all__'
read_only_fields = [ "external_reference", "source", "timestamp" ]
def validate(self, data):
payment_intent = uncloud_stripe.charge_customer(data['owner'],
data['amount'])
data["external_reference"] = payment_intent["id"]
data["source"] = "stripe"
return data
################################################################################
@ -23,10 +39,6 @@ class StripeCreditCardSerializer(serializers.ModelSerializer):
###
# Payments and Payment Methods.
class PaymentSerializer(serializers.ModelSerializer):
class Meta:
model = Payment
fields = '__all__'
class UpdatePaymentMethodSerializer(serializers.ModelSerializer):
class Meta: