| 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 |
|---|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using TicketUserServices.ServiceModel;
using BorgunRPGData;
using TicketUserServices.ServiceModel.Types;
namespace BorgunRPGData
{
public partial class Borgun3DFinal3DSecureInfo
{
public virtual string DataType { get; set; }
public virtual string MpiToken { get; set; }
}
public partial class Borgun3DFinalPaymentMethodInfo
{
public virtual string PaymentType { get; set; }
public virtual string Token { get; set; }
public virtual string VirtualNumber { get; set; }
public virtual string ExpYear { get; set; }
public virtual string ExpMonth { get; set; }
public virtual string PanLastFour { get; set; }
}
public partial class Borgun3DFinalRequest
{
public virtual string TransactionType { get; set; }
public virtual int Amount { get; set; }
public virtual string Currency { get; set; }
public virtual DateTime? TransactionDate { get; set; }
public virtual string OrderId { get; set; }
public virtual Borgun3DFinalPaymentMethodInfo PaymentMethod { get; set; }
public virtual Borgun3DFinal3DSecureInfo ThreeDSecure { get; set; }
}
}
namespace TicketUserServices.ServiceModel
{
public partial class GeneralOrderResponse
{
public virtual int StatusCode { get; set; }
public virtual string Message { get; set; }
public virtual bool Success { get; set; }
public virtual bool PaymentIsPending { get; set; }
public virtual string OrderTokenId { get; set; }
}
public partial class OrderTender
{
public virtual string Kind { get; set; }
public virtual string Code { get; set; }
public virtual int? AmountMinor { get; set; }
public virtual string IdempotencyKey { get; set; }
public virtual int? HoldId { get; set; }
public virtual int? AppliedMinor { get; set; }
}
public partial class OwnerCardsOrderResult
: GeneralOrderResponse
{
public OwnerCardsOrderResult()
{
Cards = new List<OwnerCards>{};
}
public virtual List<OwnerCards> Cards { get; set; }
public virtual string OrderReference { get; set; }
public virtual bool IsSubscription { get; set; }
public virtual decimal? MonthlyPrice { get; set; }
public virtual decimal? TransactionFee { get; set; }
public virtual int? Months { get; set; }
public virtual string PaymentTokenId { get; set; }
public virtual bool SubscriptionTokenMissing { get; set; }
public virtual int PriceTotal { get; set; }
public virtual int DiscountAmount { get; set; }
public virtual int GiftCardAmount { get; set; }
public virtual int DonationAmount { get; set; }
public virtual int ChargedAmount { get; set; }
public virtual string Reason { get; set; }
}
public partial class OwnerCardsUpgradeRequest
{
public OwnerCardsUpgradeRequest()
{
Tenders = new List<OrderTender>{};
}
public virtual string BuyerPhone { get; set; }
public virtual int SourceOwnerCardId { get; set; }
public virtual int TargetOwnerCardTypeId { get; set; }
public virtual string IdempotencyKey { get; set; }
public virtual string PaymentMethodId { get; set; }
public virtual Borgun3DFinalRequest Borgun3DFinalInfo { get; set; }
public virtual List<OrderTender> Tenders { get; set; }
public virtual string HolderName { get; set; }
public virtual string HolderEmail { get; set; }
public virtual string DeviceId { get; set; }
public virtual bool ReturnCards { get; set; }
}
public partial class OwnerCardsUpgradeResult
: OwnerCardsOrderResult
{
public virtual int SourceOwnerCardId { get; set; }
public virtual int SourceOwnerCardTypeId { get; set; }
public virtual string SourceTypeName { get; set; }
public virtual int NewOwnerCardId { get; set; }
public virtual int TargetOwnerCardTypeId { get; set; }
public virtual string TargetTypeName { get; set; }
public virtual int RelinkedTickets { get; set; }
public virtual string PaymentReference { get; set; }
public virtual bool RefundPending { get; set; }
}
}
namespace TicketUserServices.ServiceModel.Types
{
public partial class OwnerCards
{
public virtual int ID { get; set; }
public virtual int OwnerId { get; set; }
public virtual int? OwnerCardTypeId { get; set; }
public virtual int? PhoneVerificationId { get; set; }
public virtual int? InitialMaxTickets { get; set; }
public virtual int? CurrentAvailableTickets { get; set; }
public virtual DateTime? TimeStampCreatedUTC { get; set; }
public virtual DateTime? TimeStampLastChangedUTC { get; set; }
public virtual DateTime? TimeStampBoughtUTC { get; set; }
public virtual DateTime? TimeStampOrderedUTC { get; set; }
public virtual DateTime? CardValidFromUTC { get; set; }
public virtual DateTime? CardValidToUTC { get; set; }
public virtual bool HasStoreCredit { get; set; }
public virtual decimal CardPrice { get; set; }
public virtual decimal PricePaid { get; set; }
public virtual decimal? InitialStoreCredit { get; set; }
public virtual decimal? CurrentStoreCredit { get; set; }
public virtual string PhoneFullVerificationNumber { get; set; }
public virtual string HolderId { get; set; }
public virtual string HolderName { get; set; }
public virtual string HolderEmail { get; set; }
public virtual string CardPriceCurrency { get; set; }
public virtual string PricePaidCurrency { get; set; }
public virtual string DeviceId { get; set; }
public virtual string PaymentMethodId { get; set; }
public virtual string PaymentReference { get; set; }
public virtual string PhoneVerificationNumber { get; set; }
public virtual string PaymentPhoneNumber { get; set; }
public virtual string PaymentId { get; set; }
public virtual string PaymentStatus { get; set; }
public virtual string PaymentTokenId { get; set; }
public virtual int? MaxTicketsPerEvent { get; set; }
public virtual string MultiplePaymentsId { get; set; }
public virtual string ImageUrl { get; set; }
public virtual string BackgroundImageUrl { get; set; }
public virtual string OrderReference { get; set; }
public virtual int? UpgradedFromOwnerCardId { get; set; }
}
}
C# OwnerCardsUpgradeRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
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: text/jsv
Content-Type: text/jsv
Content-Length: length
{
buyerPhone: String,
sourceOwnerCardId: 0,
targetOwnerCardTypeId: 0,
idempotencyKey: String,
paymentMethodId: String,
borgun3DFinalInfo:
{
transactionType: String,
amount: 0,
currency: String,
transactionDate: 0001-01-01,
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: text/jsv
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-01,
timeStampLastChangedUTC: 0001-01-01,
timeStampBoughtUTC: 0001-01-01,
timeStampOrderedUTC: 0001-01-01,
cardValidFromUTC: 0001-01-01,
cardValidToUTC: 0001-01-01,
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
}