| Requires any of the roles: | Admin, TeamAdmin | Requires the permission: | ReadData |
| POST | /OrderOwnerCards/upgrade | Charge the delta, issue the target card (PricePaid = delta), revoke the source card, re-link future tickets — one transaction, idempotent |
|---|
import 'package:servicestack/servicestack.dart';
class GeneralOrderResponse implements IConvertible
{
int? statusCode;
String? message;
bool? success;
bool? paymentIsPending;
String? orderTokenId;
GeneralOrderResponse({this.statusCode,this.message,this.success,this.paymentIsPending,this.orderTokenId});
GeneralOrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
statusCode = json['statusCode'];
message = json['message'];
success = json['success'];
paymentIsPending = json['paymentIsPending'];
orderTokenId = json['orderTokenId'];
return this;
}
Map<String, dynamic> toJson() => {
'statusCode': statusCode,
'message': message,
'success': success,
'paymentIsPending': paymentIsPending,
'orderTokenId': orderTokenId
};
getTypeName() => "GeneralOrderResponse";
TypeContext? context = _ctx;
}
class OwnerCards implements IConvertible
{
int? id;
int? ownerId;
int? ownerCardTypeId;
int? phoneVerificationId;
int? initialMaxTickets;
int? currentAvailableTickets;
DateTime? timeStampCreatedUTC;
DateTime? timeStampLastChangedUTC;
DateTime? timeStampBoughtUTC;
DateTime? timeStampOrderedUTC;
DateTime? cardValidFromUTC;
DateTime? cardValidToUTC;
bool? hasStoreCredit;
double? cardPrice;
double? pricePaid;
double? initialStoreCredit;
double? currentStoreCredit;
String? phoneFullVerificationNumber;
String? holderId;
String? holderName;
String? holderEmail;
String? cardPriceCurrency;
String? pricePaidCurrency;
String? deviceId;
String? paymentMethodId;
String? paymentReference;
String? phoneVerificationNumber;
String? paymentPhoneNumber;
String? paymentId;
String? paymentStatus;
String? paymentTokenId;
int? maxTicketsPerEvent;
String? multiplePaymentsId;
String? imageUrl;
String? backgroundImageUrl;
String? orderReference;
int? upgradedFromOwnerCardId;
OwnerCards({this.id,this.ownerId,this.ownerCardTypeId,this.phoneVerificationId,this.initialMaxTickets,this.currentAvailableTickets,this.timeStampCreatedUTC,this.timeStampLastChangedUTC,this.timeStampBoughtUTC,this.timeStampOrderedUTC,this.cardValidFromUTC,this.cardValidToUTC,this.hasStoreCredit,this.cardPrice,this.pricePaid,this.initialStoreCredit,this.currentStoreCredit,this.phoneFullVerificationNumber,this.holderId,this.holderName,this.holderEmail,this.cardPriceCurrency,this.pricePaidCurrency,this.deviceId,this.paymentMethodId,this.paymentReference,this.phoneVerificationNumber,this.paymentPhoneNumber,this.paymentId,this.paymentStatus,this.paymentTokenId,this.maxTicketsPerEvent,this.multiplePaymentsId,this.imageUrl,this.backgroundImageUrl,this.orderReference,this.upgradedFromOwnerCardId});
OwnerCards.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
ownerId = json['ownerId'];
ownerCardTypeId = json['ownerCardTypeId'];
phoneVerificationId = json['phoneVerificationId'];
initialMaxTickets = json['initialMaxTickets'];
currentAvailableTickets = json['currentAvailableTickets'];
timeStampCreatedUTC = JsonConverters.fromJson(json['timeStampCreatedUTC'],'DateTime',context!);
timeStampLastChangedUTC = JsonConverters.fromJson(json['timeStampLastChangedUTC'],'DateTime',context!);
timeStampBoughtUTC = JsonConverters.fromJson(json['timeStampBoughtUTC'],'DateTime',context!);
timeStampOrderedUTC = JsonConverters.fromJson(json['timeStampOrderedUTC'],'DateTime',context!);
cardValidFromUTC = JsonConverters.fromJson(json['cardValidFromUTC'],'DateTime',context!);
cardValidToUTC = JsonConverters.fromJson(json['cardValidToUTC'],'DateTime',context!);
hasStoreCredit = json['hasStoreCredit'];
cardPrice = JsonConverters.toDouble(json['cardPrice']);
pricePaid = JsonConverters.toDouble(json['pricePaid']);
initialStoreCredit = JsonConverters.toDouble(json['initialStoreCredit']);
currentStoreCredit = JsonConverters.toDouble(json['currentStoreCredit']);
phoneFullVerificationNumber = json['phoneFullVerificationNumber'];
holderId = json['holderId'];
holderName = json['holderName'];
holderEmail = json['holderEmail'];
cardPriceCurrency = json['cardPriceCurrency'];
pricePaidCurrency = json['pricePaidCurrency'];
deviceId = json['deviceId'];
paymentMethodId = json['paymentMethodId'];
paymentReference = json['paymentReference'];
phoneVerificationNumber = json['phoneVerificationNumber'];
paymentPhoneNumber = json['paymentPhoneNumber'];
paymentId = json['paymentId'];
paymentStatus = json['paymentStatus'];
paymentTokenId = json['paymentTokenId'];
maxTicketsPerEvent = json['maxTicketsPerEvent'];
multiplePaymentsId = json['multiplePaymentsId'];
imageUrl = json['imageUrl'];
backgroundImageUrl = json['backgroundImageUrl'];
orderReference = json['orderReference'];
upgradedFromOwnerCardId = json['upgradedFromOwnerCardId'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'ownerId': ownerId,
'ownerCardTypeId': ownerCardTypeId,
'phoneVerificationId': phoneVerificationId,
'initialMaxTickets': initialMaxTickets,
'currentAvailableTickets': currentAvailableTickets,
'timeStampCreatedUTC': JsonConverters.toJson(timeStampCreatedUTC,'DateTime',context!),
'timeStampLastChangedUTC': JsonConverters.toJson(timeStampLastChangedUTC,'DateTime',context!),
'timeStampBoughtUTC': JsonConverters.toJson(timeStampBoughtUTC,'DateTime',context!),
'timeStampOrderedUTC': JsonConverters.toJson(timeStampOrderedUTC,'DateTime',context!),
'cardValidFromUTC': JsonConverters.toJson(cardValidFromUTC,'DateTime',context!),
'cardValidToUTC': JsonConverters.toJson(cardValidToUTC,'DateTime',context!),
'hasStoreCredit': hasStoreCredit,
'cardPrice': cardPrice,
'pricePaid': pricePaid,
'initialStoreCredit': initialStoreCredit,
'currentStoreCredit': currentStoreCredit,
'phoneFullVerificationNumber': phoneFullVerificationNumber,
'holderId': holderId,
'holderName': holderName,
'holderEmail': holderEmail,
'cardPriceCurrency': cardPriceCurrency,
'pricePaidCurrency': pricePaidCurrency,
'deviceId': deviceId,
'paymentMethodId': paymentMethodId,
'paymentReference': paymentReference,
'phoneVerificationNumber': phoneVerificationNumber,
'paymentPhoneNumber': paymentPhoneNumber,
'paymentId': paymentId,
'paymentStatus': paymentStatus,
'paymentTokenId': paymentTokenId,
'maxTicketsPerEvent': maxTicketsPerEvent,
'multiplePaymentsId': multiplePaymentsId,
'imageUrl': imageUrl,
'backgroundImageUrl': backgroundImageUrl,
'orderReference': orderReference,
'upgradedFromOwnerCardId': upgradedFromOwnerCardId
};
getTypeName() => "OwnerCards";
TypeContext? context = _ctx;
}
class OwnerCardsOrderResult extends GeneralOrderResponse implements IConvertible
{
List<OwnerCards>? cards;
String? orderReference;
bool? isSubscription;
double? monthlyPrice;
double? transactionFee;
int? months;
String? paymentTokenId;
bool? subscriptionTokenMissing;
int? priceTotal;
int? discountAmount;
int? giftCardAmount;
int? donationAmount;
int? chargedAmount;
String? reason;
OwnerCardsOrderResult({this.cards,this.orderReference,this.isSubscription,this.monthlyPrice,this.transactionFee,this.months,this.paymentTokenId,this.subscriptionTokenMissing,this.priceTotal,this.discountAmount,this.giftCardAmount,this.donationAmount,this.chargedAmount,this.reason});
OwnerCardsOrderResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
cards = JsonConverters.fromJson(json['cards'],'List<OwnerCards>',context!);
orderReference = json['orderReference'];
isSubscription = json['isSubscription'];
monthlyPrice = JsonConverters.toDouble(json['monthlyPrice']);
transactionFee = JsonConverters.toDouble(json['transactionFee']);
months = json['months'];
paymentTokenId = json['paymentTokenId'];
subscriptionTokenMissing = json['subscriptionTokenMissing'];
priceTotal = json['priceTotal'];
discountAmount = json['discountAmount'];
giftCardAmount = json['giftCardAmount'];
donationAmount = json['donationAmount'];
chargedAmount = json['chargedAmount'];
reason = json['reason'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'cards': JsonConverters.toJson(cards,'List<OwnerCards>',context!),
'orderReference': orderReference,
'isSubscription': isSubscription,
'monthlyPrice': monthlyPrice,
'transactionFee': transactionFee,
'months': months,
'paymentTokenId': paymentTokenId,
'subscriptionTokenMissing': subscriptionTokenMissing,
'priceTotal': priceTotal,
'discountAmount': discountAmount,
'giftCardAmount': giftCardAmount,
'donationAmount': donationAmount,
'chargedAmount': chargedAmount,
'reason': reason
});
getTypeName() => "OwnerCardsOrderResult";
TypeContext? context = _ctx;
}
class OwnerCardsUpgradeResult extends OwnerCardsOrderResult implements IConvertible
{
int? sourceOwnerCardId;
int? sourceOwnerCardTypeId;
String? sourceTypeName;
int? newOwnerCardId;
int? targetOwnerCardTypeId;
String? targetTypeName;
int? relinkedTickets;
String? paymentReference;
bool? refundPending;
OwnerCardsUpgradeResult({this.sourceOwnerCardId,this.sourceOwnerCardTypeId,this.sourceTypeName,this.newOwnerCardId,this.targetOwnerCardTypeId,this.targetTypeName,this.relinkedTickets,this.paymentReference,this.refundPending});
OwnerCardsUpgradeResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
sourceOwnerCardId = json['sourceOwnerCardId'];
sourceOwnerCardTypeId = json['sourceOwnerCardTypeId'];
sourceTypeName = json['sourceTypeName'];
newOwnerCardId = json['newOwnerCardId'];
targetOwnerCardTypeId = json['targetOwnerCardTypeId'];
targetTypeName = json['targetTypeName'];
relinkedTickets = json['relinkedTickets'];
paymentReference = json['paymentReference'];
refundPending = json['refundPending'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'sourceOwnerCardId': sourceOwnerCardId,
'sourceOwnerCardTypeId': sourceOwnerCardTypeId,
'sourceTypeName': sourceTypeName,
'newOwnerCardId': newOwnerCardId,
'targetOwnerCardTypeId': targetOwnerCardTypeId,
'targetTypeName': targetTypeName,
'relinkedTickets': relinkedTickets,
'paymentReference': paymentReference,
'refundPending': refundPending
});
getTypeName() => "OwnerCardsUpgradeResult";
TypeContext? context = _ctx;
}
class Borgun3DFinalPaymentMethodInfo implements IConvertible
{
String? paymentType;
String? token;
String? virtualNumber;
String? expYear;
String? expMonth;
String? panLastFour;
Borgun3DFinalPaymentMethodInfo({this.paymentType,this.token,this.virtualNumber,this.expYear,this.expMonth,this.panLastFour});
Borgun3DFinalPaymentMethodInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
paymentType = json['paymentType'];
token = json['token'];
virtualNumber = json['virtualNumber'];
expYear = json['expYear'];
expMonth = json['expMonth'];
panLastFour = json['panLastFour'];
return this;
}
Map<String, dynamic> toJson() => {
'paymentType': paymentType,
'token': token,
'virtualNumber': virtualNumber,
'expYear': expYear,
'expMonth': expMonth,
'panLastFour': panLastFour
};
getTypeName() => "Borgun3DFinalPaymentMethodInfo";
TypeContext? context = _ctx;
}
class Borgun3DFinal3DSecureInfo implements IConvertible
{
String? dataType;
String? mpiToken;
Borgun3DFinal3DSecureInfo({this.dataType,this.mpiToken});
Borgun3DFinal3DSecureInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
dataType = json['dataType'];
mpiToken = json['mpiToken'];
return this;
}
Map<String, dynamic> toJson() => {
'dataType': dataType,
'mpiToken': mpiToken
};
getTypeName() => "Borgun3DFinal3DSecureInfo";
TypeContext? context = _ctx;
}
class Borgun3DFinalRequest implements IConvertible
{
String? transactionType;
int? amount;
String? currency;
DateTime? transactionDate;
String? orderId;
Borgun3DFinalPaymentMethodInfo? paymentMethod;
Borgun3DFinal3DSecureInfo? threeDSecure;
Borgun3DFinalRequest({this.transactionType,this.amount,this.currency,this.transactionDate,this.orderId,this.paymentMethod,this.threeDSecure});
Borgun3DFinalRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
transactionType = json['transactionType'];
amount = json['amount'];
currency = json['currency'];
transactionDate = JsonConverters.fromJson(json['transactionDate'],'DateTime',context!);
orderId = json['orderId'];
paymentMethod = JsonConverters.fromJson(json['paymentMethod'],'Borgun3DFinalPaymentMethodInfo',context!);
threeDSecure = JsonConverters.fromJson(json['threeDSecure'],'Borgun3DFinal3DSecureInfo',context!);
return this;
}
Map<String, dynamic> toJson() => {
'transactionType': transactionType,
'amount': amount,
'currency': currency,
'transactionDate': JsonConverters.toJson(transactionDate,'DateTime',context!),
'orderId': orderId,
'paymentMethod': JsonConverters.toJson(paymentMethod,'Borgun3DFinalPaymentMethodInfo',context!),
'threeDSecure': JsonConverters.toJson(threeDSecure,'Borgun3DFinal3DSecureInfo',context!)
};
getTypeName() => "Borgun3DFinalRequest";
TypeContext? context = _ctx;
}
class OrderTender implements IConvertible
{
String? kind;
String? code;
int? amountMinor;
String? idempotencyKey;
int? holdId;
int? appliedMinor;
OrderTender({this.kind,this.code,this.amountMinor,this.idempotencyKey,this.holdId,this.appliedMinor});
OrderTender.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
kind = json['kind'];
code = json['code'];
amountMinor = json['amountMinor'];
idempotencyKey = json['idempotencyKey'];
holdId = json['holdId'];
appliedMinor = json['appliedMinor'];
return this;
}
Map<String, dynamic> toJson() => {
'kind': kind,
'code': code,
'amountMinor': amountMinor,
'idempotencyKey': idempotencyKey,
'holdId': holdId,
'appliedMinor': appliedMinor
};
getTypeName() => "OrderTender";
TypeContext? context = _ctx;
}
class OwnerCardsUpgradeRequest implements IConvertible
{
String? buyerPhone;
int? sourceOwnerCardId;
int? targetOwnerCardTypeId;
String? idempotencyKey;
String? paymentMethodId;
Borgun3DFinalRequest? borgun3DFinalInfo;
List<OrderTender>? tenders;
String? holderName;
String? holderEmail;
String? deviceId;
bool? returnCards;
OwnerCardsUpgradeRequest({this.buyerPhone,this.sourceOwnerCardId,this.targetOwnerCardTypeId,this.idempotencyKey,this.paymentMethodId,this.borgun3DFinalInfo,this.tenders,this.holderName,this.holderEmail,this.deviceId,this.returnCards});
OwnerCardsUpgradeRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
buyerPhone = json['buyerPhone'];
sourceOwnerCardId = json['sourceOwnerCardId'];
targetOwnerCardTypeId = json['targetOwnerCardTypeId'];
idempotencyKey = json['idempotencyKey'];
paymentMethodId = json['paymentMethodId'];
borgun3DFinalInfo = JsonConverters.fromJson(json['borgun3DFinalInfo'],'Borgun3DFinalRequest',context!);
tenders = JsonConverters.fromJson(json['tenders'],'List<OrderTender>',context!);
holderName = json['holderName'];
holderEmail = json['holderEmail'];
deviceId = json['deviceId'];
returnCards = json['returnCards'];
return this;
}
Map<String, dynamic> toJson() => {
'buyerPhone': buyerPhone,
'sourceOwnerCardId': sourceOwnerCardId,
'targetOwnerCardTypeId': targetOwnerCardTypeId,
'idempotencyKey': idempotencyKey,
'paymentMethodId': paymentMethodId,
'borgun3DFinalInfo': JsonConverters.toJson(borgun3DFinalInfo,'Borgun3DFinalRequest',context!),
'tenders': JsonConverters.toJson(tenders,'List<OrderTender>',context!),
'holderName': holderName,
'holderEmail': holderEmail,
'deviceId': deviceId,
'returnCards': returnCards
};
getTypeName() => "OwnerCardsUpgradeRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
'GeneralOrderResponse': TypeInfo(TypeOf.Class, create:() => GeneralOrderResponse()),
'OwnerCards': TypeInfo(TypeOf.Class, create:() => OwnerCards()),
'OwnerCardsOrderResult': TypeInfo(TypeOf.Class, create:() => OwnerCardsOrderResult()),
'List<OwnerCards>': TypeInfo(TypeOf.Class, create:() => <OwnerCards>[]),
'OwnerCardsUpgradeResult': TypeInfo(TypeOf.Class, create:() => OwnerCardsUpgradeResult()),
'Borgun3DFinalPaymentMethodInfo': TypeInfo(TypeOf.Class, create:() => Borgun3DFinalPaymentMethodInfo()),
'Borgun3DFinal3DSecureInfo': TypeInfo(TypeOf.Class, create:() => Borgun3DFinal3DSecureInfo()),
'Borgun3DFinalRequest': TypeInfo(TypeOf.Class, create:() => Borgun3DFinalRequest()),
'OrderTender': TypeInfo(TypeOf.Class, create:() => OrderTender()),
'OwnerCardsUpgradeRequest': TypeInfo(TypeOf.Class, create:() => OwnerCardsUpgradeRequest()),
'List<OrderTender>': TypeInfo(TypeOf.Class, create:() => <OrderTender>[]),
});
Dart OwnerCardsUpgradeRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /OrderOwnerCards/upgrade HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: application/json
Content-Type: application/json
Content-Length: length
{"buyerPhone":"String","sourceOwnerCardId":0,"targetOwnerCardTypeId":0,"idempotencyKey":"String","paymentMethodId":"String","borgun3DFinalInfo":{"transactionType":"String","amount":0,"currency":"String","transactionDate":"0001-01-01T00:00:00.0000000","orderId":"String","paymentMethod":{"paymentType":"String","token":"String","virtualNumber":"String","expYear":"String","expMonth":"String","panLastFour":"String"},"threeDSecure":{"dataType":"String","mpiToken":"String"}},"tenders":[{"kind":"String","code":"String","amountMinor":0,"idempotencyKey":"String","holdId":0,"appliedMinor":0}],"holderName":"String","holderEmail":"String","deviceId":"String","returnCards":false}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"sourceOwnerCardId":0,"sourceOwnerCardTypeId":0,"sourceTypeName":"String","newOwnerCardId":0,"targetOwnerCardTypeId":0,"targetTypeName":"String","relinkedTickets":0,"paymentReference":"String","refundPending":false,"cards":[{"id":0,"ownerId":0,"ownerCardTypeId":0,"phoneVerificationId":0,"initialMaxTickets":0,"currentAvailableTickets":0,"timeStampCreatedUTC":"0001-01-01T00:00:00.0000000","timeStampLastChangedUTC":"0001-01-01T00:00:00.0000000","timeStampBoughtUTC":"0001-01-01T00:00:00.0000000","timeStampOrderedUTC":"0001-01-01T00:00:00.0000000","cardValidFromUTC":"0001-01-01T00:00:00.0000000","cardValidToUTC":"0001-01-01T00:00:00.0000000","hasStoreCredit":false,"cardPrice":0,"pricePaid":0,"initialStoreCredit":0,"currentStoreCredit":0,"phoneFullVerificationNumber":"String","holderId":"String","holderName":"String","holderEmail":"String","cardPriceCurrency":"String","pricePaidCurrency":"String","deviceId":"String","paymentMethodId":"String","paymentReference":"String","phoneVerificationNumber":"String","paymentPhoneNumber":"String","paymentId":"String","paymentStatus":"String","paymentTokenId":"String","maxTicketsPerEvent":0,"multiplePaymentsId":"String","imageUrl":"String","backgroundImageUrl":"String","orderReference":"String","upgradedFromOwnerCardId":0}],"orderReference":"String","isSubscription":false,"monthlyPrice":0,"transactionFee":0,"months":0,"paymentTokenId":"String","subscriptionTokenMissing":false,"priceTotal":0,"discountAmount":0,"giftCardAmount":0,"donationAmount":0,"chargedAmount":0,"reason":"String","statusCode":0,"message":"String","success":false,"paymentIsPending":false,"orderTokenId":"String"}