62 lines
3.1 KiB
Python
62 lines
3.1 KiB
Python
from rest_framework import serializers
|
|
from gvsds.common.Serializer import PascalCaseSerializer, PascalCaseModelSerializer
|
|
from gvsds.apps.payment.models import PaymentGatewayConfig, PaymentTransaction
|
|
|
|
|
|
class GatewayConfigSerializer(PascalCaseModelSerializer):
|
|
class Meta:
|
|
model = PaymentGatewayConfig
|
|
fields = ['TenantUUID', 'Platform', 'AppID', 'MchID', 'NotifyURL', 'ReturnURL', 'ConfigExtra', 'ConfigStatus', 'ConfigDefault', 'CreateTime']
|
|
read_only_fields = ['CreateTime']
|
|
|
|
|
|
class GatewayConfigCreateSerializer(PascalCaseSerializer):
|
|
Platform = serializers.CharField()
|
|
AppID = serializers.CharField(required=False, default='')
|
|
MchID = serializers.CharField(required=False, default='')
|
|
APIKeyEncrypted = serializers.CharField(required=False, default='', source='APIKey')
|
|
PrivateKeyEncrypted = serializers.CharField(required=False, default='', source='PrivateKey')
|
|
PublicKeyEncrypted = serializers.CharField(required=False, default='', source='PublicKey')
|
|
CertPath = serializers.CharField(required=False, default='')
|
|
CertKeyPath = serializers.CharField(required=False, default='')
|
|
NotifyURL = serializers.CharField(required=False, default='')
|
|
ReturnURL = serializers.CharField(required=False, default='')
|
|
ConfigExtra = serializers.DictField(required=False, default=dict)
|
|
SetDefault = serializers.BooleanField(default=False)
|
|
|
|
|
|
class PaymentRequestSerializer(PascalCaseSerializer):
|
|
Platform = serializers.CharField()
|
|
Amount = serializers.DecimalField(max_digits=18, decimal_places=4)
|
|
Subject = serializers.CharField(required=False, default='')
|
|
Body = serializers.CharField(required=False, default='')
|
|
Method = serializers.CharField(default='jsapi')
|
|
OpenID = serializers.CharField(required=False, default='')
|
|
ClientIP = serializers.CharField(required=False, default='')
|
|
Extra = serializers.DictField(required=False, default=dict)
|
|
ExpireMinutes = serializers.IntegerField(default=30)
|
|
|
|
|
|
class RefundRequestSerializer(PascalCaseSerializer):
|
|
OutTradeNO = serializers.CharField()
|
|
Amount = serializers.DecimalField(max_digits=18, decimal_places=4)
|
|
Reason = serializers.CharField(required=False, default='')
|
|
Platform = serializers.CharField(required=False)
|
|
Extra = serializers.DictField(required=False, default=dict)
|
|
|
|
|
|
class TransferRequestSerializer(PascalCaseSerializer):
|
|
Platform = serializers.CharField()
|
|
Amount = serializers.DecimalField(max_digits=18, decimal_places=4)
|
|
PayeeAccount = serializers.CharField(required=False, default='')
|
|
PayeeName = serializers.CharField(required=False, default='')
|
|
Description = serializers.CharField(required=False, default='')
|
|
TransferType = serializers.CharField(default='wallet')
|
|
Extra = serializers.DictField(required=False, default=dict)
|
|
|
|
|
|
class TransactionSerializer(PascalCaseModelSerializer):
|
|
class Meta:
|
|
model = PaymentTransaction
|
|
fields = ['TenantUUID', 'Platform', 'TransactionType', 'OutTradeNO', 'OutRefundNO', 'ChannelTransactionID', 'TotalAmount', 'Currency', 'TransactionStatus', 'Subject', 'PayTime', 'CreateTime']
|
|
read_only_fields = ['CreateTime', 'PayTime'] |