forked from uncloud/uncloud
[credit card] implement payment
This commit is contained in:
parent
e225bf1cc0
commit
1b06d8ee03
16 changed files with 290 additions and 64 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue