| 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 |
|---|
namespace TicketUserServices.ServiceModel
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type GeneralOrderResponse() =
member val StatusCode:Int32 = new Int32() with get,set
member val Message:String = null with get,set
member val Success:Boolean = new Boolean() with get,set
member val PaymentIsPending:Boolean = new Boolean() with get,set
member val OrderTokenId:String = null with get,set
[<AllowNullLiteral>]
type OwnerCards() =
member val ID:Int32 = new Int32() with get,set
member val OwnerId:Int32 = new Int32() with get,set
member val OwnerCardTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val PhoneVerificationId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val InitialMaxTickets:Nullable<Int32> = new Nullable<Int32>() with get,set
member val CurrentAvailableTickets:Nullable<Int32> = new Nullable<Int32>() with get,set
member val TimeStampCreatedUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val TimeStampLastChangedUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val TimeStampBoughtUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val TimeStampOrderedUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CardValidFromUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CardValidToUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val HasStoreCredit:Boolean = new Boolean() with get,set
member val CardPrice:Decimal = new Decimal() with get,set
member val PricePaid:Decimal = new Decimal() with get,set
member val InitialStoreCredit:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val CurrentStoreCredit:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val PhoneFullVerificationNumber:String = null with get,set
member val HolderId:String = null with get,set
member val HolderName:String = null with get,set
member val HolderEmail:String = null with get,set
member val CardPriceCurrency:String = null with get,set
member val PricePaidCurrency:String = null with get,set
member val DeviceId:String = null with get,set
member val PaymentMethodId:String = null with get,set
member val PaymentReference:String = null with get,set
member val PhoneVerificationNumber:String = null with get,set
member val PaymentPhoneNumber:String = null with get,set
member val PaymentId:String = null with get,set
member val PaymentStatus:String = null with get,set
member val PaymentTokenId:String = null with get,set
member val MaxTicketsPerEvent:Nullable<Int32> = new Nullable<Int32>() with get,set
member val MultiplePaymentsId:String = null with get,set
member val ImageUrl:String = null with get,set
member val BackgroundImageUrl:String = null with get,set
member val OrderReference:String = null with get,set
member val UpgradedFromOwnerCardId:Nullable<Int32> = new Nullable<Int32>() with get,set
[<AllowNullLiteral>]
type OwnerCardsOrderResult() =
inherit GeneralOrderResponse()
member val Cards:ResizeArray<OwnerCards> = new ResizeArray<OwnerCards>() with get,set
member val OrderReference:String = null with get,set
member val IsSubscription:Boolean = new Boolean() with get,set
member val MonthlyPrice:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val TransactionFee:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val Months:Nullable<Int32> = new Nullable<Int32>() with get,set
member val PaymentTokenId:String = null with get,set
member val SubscriptionTokenMissing:Boolean = new Boolean() with get,set
member val PriceTotal:Int32 = new Int32() with get,set
member val DiscountAmount:Int32 = new Int32() with get,set
member val GiftCardAmount:Int32 = new Int32() with get,set
member val DonationAmount:Int32 = new Int32() with get,set
member val ChargedAmount:Int32 = new Int32() with get,set
member val Reason:String = null with get,set
[<AllowNullLiteral>]
type OwnerCardsUpgradeResult() =
inherit OwnerCardsOrderResult()
member val SourceOwnerCardId:Int32 = new Int32() with get,set
member val SourceOwnerCardTypeId:Int32 = new Int32() with get,set
member val SourceTypeName:String = null with get,set
member val NewOwnerCardId:Int32 = new Int32() with get,set
member val TargetOwnerCardTypeId:Int32 = new Int32() with get,set
member val TargetTypeName:String = null with get,set
member val RelinkedTickets:Int32 = new Int32() with get,set
member val PaymentReference:String = null with get,set
member val RefundPending:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type Borgun3DFinalPaymentMethodInfo() =
member val PaymentType:String = null with get,set
member val Token:String = null with get,set
member val VirtualNumber:String = null with get,set
member val ExpYear:String = null with get,set
member val ExpMonth:String = null with get,set
member val PanLastFour:String = null with get,set
[<AllowNullLiteral>]
type Borgun3DFinal3DSecureInfo() =
member val DataType:String = null with get,set
member val MpiToken:String = null with get,set
[<AllowNullLiteral>]
type Borgun3DFinalRequest() =
member val TransactionType:String = null with get,set
member val Amount:Int32 = new Int32() with get,set
member val Currency:String = null with get,set
member val TransactionDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val OrderId:String = null with get,set
member val PaymentMethod:Borgun3DFinalPaymentMethodInfo = null with get,set
member val ThreeDSecure:Borgun3DFinal3DSecureInfo = null with get,set
[<AllowNullLiteral>]
type OrderTender() =
member val Kind:String = null with get,set
member val Code:String = null with get,set
member val AmountMinor:Nullable<Int32> = new Nullable<Int32>() with get,set
member val IdempotencyKey:String = null with get,set
member val HoldId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val AppliedMinor:Nullable<Int32> = new Nullable<Int32>() with get,set
[<AllowNullLiteral>]
type OwnerCardsUpgradeRequest() =
member val BuyerPhone:String = null with get,set
member val SourceOwnerCardId:Int32 = new Int32() with get,set
member val TargetOwnerCardTypeId:Int32 = new Int32() with get,set
member val IdempotencyKey:String = null with get,set
member val PaymentMethodId:String = null with get,set
member val Borgun3DFinalInfo:Borgun3DFinalRequest = null with get,set
member val Tenders:ResizeArray<OrderTender> = new ResizeArray<OrderTender>() with get,set
member val HolderName:String = null with get,set
member val HolderEmail:String = null with get,set
member val DeviceId:String = null with get,set
member val ReturnCards:Boolean = new Boolean() with get,set
F# 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
}