import 'package:servicestack/servicestack.dart';
import 'dart:collection';
class ResponseBase implements IConvertible
{
bool? Status;
String? Message;
Map<String,List<String>?>? Errors;
ResponseBase({this.Status,this.Message,this.Errors});
ResponseBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Status = json['Status'];
Message = json['Message'];
Errors = JsonConverters.fromJson(json['Errors'],'Map<String,List<String>?>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Status': Status,
'Message': Message,
'Errors': JsonConverters.toJson(Errors,'Map<String,List<String>?>',context!)
};
getTypeName() => "ResponseBase";
TypeContext? context = _ctx;
}
class InitialisePaymentResponse extends ResponseBase implements IConvertible
{
String? TransactionId;
String? Signature;
String? Url;
InitialisePaymentResponse({this.TransactionId,this.Signature,this.Url});
InitialisePaymentResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
TransactionId = json['TransactionId'];
Signature = json['Signature'];
Url = json['Url'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'TransactionId': TransactionId,
'Signature': Signature,
'Url': Url
});
getTypeName() => "InitialisePaymentResponse";
TypeContext? context = _ctx;
}
enum PaymentTypeEnum
{
OneTime,
Recurring,
}
enum FrequencyEnum
{
Daily,
Weekly,
Monthly,
Quarterly,
Biannually,
Annually,
}
class InitialisePaymentRequest implements IConvertible
{
PaymentTypeEnum? PaymentType;
String? Uuid;
String? ReferenceNumber;
double? Amount;
String? Currency;
String? ItemName;
String? ItemDescription;
DateTime? BillingDate;
FrequencyEnum? Frequency;
int? Cycles;
InitialisePaymentRequest({this.PaymentType,this.Uuid,this.ReferenceNumber,this.Amount,this.Currency,this.ItemName,this.ItemDescription,this.BillingDate,this.Frequency,this.Cycles});
InitialisePaymentRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PaymentType = JsonConverters.fromJson(json['PaymentType'],'PaymentTypeEnum',context!);
Uuid = json['Uuid'];
ReferenceNumber = json['ReferenceNumber'];
Amount = JsonConverters.toDouble(json['Amount']);
Currency = json['Currency'];
ItemName = json['ItemName'];
ItemDescription = json['ItemDescription'];
BillingDate = JsonConverters.fromJson(json['BillingDate'],'DateTime',context!);
Frequency = JsonConverters.fromJson(json['Frequency'],'FrequencyEnum',context!);
Cycles = json['Cycles'];
return this;
}
Map<String, dynamic> toJson() => {
'PaymentType': JsonConverters.toJson(PaymentType,'PaymentTypeEnum',context!),
'Uuid': Uuid,
'ReferenceNumber': ReferenceNumber,
'Amount': Amount,
'Currency': Currency,
'ItemName': ItemName,
'ItemDescription': ItemDescription,
'BillingDate': JsonConverters.toJson(BillingDate,'DateTime',context!),
'Frequency': JsonConverters.toJson(Frequency,'FrequencyEnum',context!),
'Cycles': Cycles
};
getTypeName() => "InitialisePaymentRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'duengageapi.uat.scadsoftware.com', types: <String, TypeInfo> {
'ResponseBase': TypeInfo(TypeOf.Class, create:() => ResponseBase()),
'Map<String,List<String>?>': TypeInfo(TypeOf.Class, create:() => Map<String,List<String>?>()),
'InitialisePaymentResponse': TypeInfo(TypeOf.Class, create:() => InitialisePaymentResponse()),
'PaymentTypeEnum': TypeInfo(TypeOf.Enum, enumValues:PaymentTypeEnum.values),
'FrequencyEnum': TypeInfo(TypeOf.Enum, enumValues:FrequencyEnum.values),
'InitialisePaymentRequest': TypeInfo(TypeOf.Class, create:() => InitialisePaymentRequest()),
});
Dart InitialisePaymentRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /xml/reply/InitialisePaymentRequest HTTP/1.1
Host: duengageapi.uat.scadsoftware.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<InitialisePaymentRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel">
<Amount>0</Amount>
<BillingDate>0001-01-01T00:00:00</BillingDate>
<CampaignActionsRequestsId>0</CampaignActionsRequestsId>
<Currency>String</Currency>
<Cycles>0</Cycles>
<Frequency>Daily</Frequency>
<ItemDescription>String</ItemDescription>
<ItemName>String</ItemName>
<PaymentType>OneTime</PaymentType>
<ReferenceNumber>String</ReferenceNumber>
<Uuid>00000000-0000-0000-0000-000000000000</Uuid>
</InitialisePaymentRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<InitialisePaymentResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceModel">
<Errors xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:KeyValueOfstringArrayOfstringty7Ep6D1>
<d2p1:Key>String</d2p1:Key>
<d2p1:Value>
<d2p1:string>String</d2p1:string>
</d2p1:Value>
</d2p1:KeyValueOfstringArrayOfstringty7Ep6D1>
</Errors>
<Message>String</Message>
<Status>false</Status>
<Signature>String</Signature>
<TransactionId>String</TransactionId>
<Url>String</Url>
</InitialisePaymentResponse>