BokaMera.API.Host

<back to all web services

StripeV1CreateCheckout

The following routes are available for this service:
POST/payment/stripe/v1/checkoutCreate an checkout for Payble entity. Note if existing checkouts already exists, it will invalidate those.Create Stripe checkout (requires settings for Stripe Checkout 1.0)
import 'package:servicestack/servicestack.dart';

class StripeCheckoutQueryResponse implements IConvertible
{
    /**
    * The checkout session id
    */
    // @ApiMember(Description="The checkout session id")
    String? Number;

    /**
    * The url for checkout module to be placed in a iframe
    */
    // @ApiMember(Description="The url for checkout module to be placed in a iframe")
    String? Url;

    /**
    * The checkout status
    */
    // @ApiMember(Description="The checkout status")
    String? Status;

    /**
    * Client secret to be used when initializing Stripe.js embedded checkout.
    */
    // @ApiMember(Description="Client secret to be used when initializing Stripe.js embedded checkout.")
    String? ClientSecret;

    StripeCheckoutQueryResponse({this.Number,this.Url,this.Status,this.ClientSecret});
    StripeCheckoutQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Number = json['Number'];
        Url = json['Url'];
        Status = json['Status'];
        ClientSecret = json['ClientSecret'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Number': Number,
        'Url': Url,
        'Status': Status,
        'ClientSecret': ClientSecret
    };

    getTypeName() => "StripeCheckoutQueryResponse";
    TypeContext? context = _ctx;
}

class StripeV1CreateCheckout implements ICompany, IConvertible
{
    /**
    * The company id.
    */
    // @ApiMember(Description="The company id.", IsRequired=true)
    String? CompanyId;

    /**
    * Country code for checkout
    */
    // @ApiMember(Description="Country code for checkout", IsRequired=true)
    String? CountryCode;

    /**
    * Articles (Could be Service, rebate code types, etc..
    */
    // @ApiMember(Description="Articles (Could be Service, rebate code types, etc..", IsRequired=true)
    List<ArticleToCreate>? Articles;

    /**
    * An internal reference id (Could be booking, rebate code etc.)
    */
    // @ApiMember(Description="An internal reference id (Could be booking, rebate code etc.)", IsRequired=true)
    String? InternalReferenceId;

    /**
    * Optional to set your own confirmation url after payment completed.
    */
    // @ApiMember(Description="Optional to set your own confirmation url after payment completed.")
    String? ConfirmationUrl;

    /**
    * If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is <c>embedded</c>.
    */
    // @ApiMember(Description="If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is <c>embedded</c>.")
    String? CancelUrl;

    /**
    * The UI mode of the Session. Defaults to <c>hosted</c>; One of: <c>embedded</c>, or <c>hosted</c>
    */
    // @ApiMember(Description="The UI mode of the Session. Defaults to <c>hosted</c>; One of: <c>embedded</c>, or <c>hosted</c>", IsRequired=true)
    String? UiMode;

    StripeV1CreateCheckout({this.CompanyId,this.CountryCode,this.Articles,this.InternalReferenceId,this.ConfirmationUrl,this.CancelUrl,this.UiMode});
    StripeV1CreateCheckout.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        CountryCode = json['CountryCode'];
        Articles = JsonConverters.fromJson(json['Articles'],'List<ArticleToCreate>',context!);
        InternalReferenceId = json['InternalReferenceId'];
        ConfirmationUrl = json['ConfirmationUrl'];
        CancelUrl = json['CancelUrl'];
        UiMode = json['UiMode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'CountryCode': CountryCode,
        'Articles': JsonConverters.toJson(Articles,'List<ArticleToCreate>',context!),
        'InternalReferenceId': InternalReferenceId,
        'ConfirmationUrl': ConfirmationUrl,
        'CancelUrl': CancelUrl,
        'UiMode': UiMode
    };

    getTypeName() => "StripeV1CreateCheckout";
    TypeContext? context = _ctx;
}

class ArticleToCreate implements IConvertible
{
    int? ArticleId;
    int? ArticleTypeId;
    int? Quantity;

    ArticleToCreate({this.ArticleId,this.ArticleTypeId,this.Quantity});
    ArticleToCreate.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ArticleId = json['ArticleId'];
        ArticleTypeId = json['ArticleTypeId'];
        Quantity = json['Quantity'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ArticleId': ArticleId,
        'ArticleTypeId': ArticleTypeId,
        'Quantity': Quantity
    };

    getTypeName() => "ArticleToCreate";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: <String, TypeInfo> {
    'StripeCheckoutQueryResponse': TypeInfo(TypeOf.Class, create:() => StripeCheckoutQueryResponse()),
    'StripeV1CreateCheckout': TypeInfo(TypeOf.Class, create:() => StripeV1CreateCheckout()),
    'List<ArticleToCreate>': TypeInfo(TypeOf.Class, create:() => <ArticleToCreate>[]),
    'ArticleToCreate': TypeInfo(TypeOf.Class, create:() => ArticleToCreate()),
});

Dart StripeV1CreateCheckout DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /payment/stripe/v1/checkout HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<StripeV1CreateCheckout xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Articles>
    <ArticleToCreate>
      <ArticleId>0</ArticleId>
      <ArticleTypeId>0</ArticleTypeId>
      <Quantity>0</Quantity>
    </ArticleToCreate>
  </Articles>
  <CancelUrl>String</CancelUrl>
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <ConfirmationUrl>String</ConfirmationUrl>
  <CountryCode>String</CountryCode>
  <InternalReferenceId>String</InternalReferenceId>
  <UiMode>String</UiMode>
</StripeV1CreateCheckout>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<StripeCheckoutQueryResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <ClientSecret>String</ClientSecret>
  <Number>String</Number>
  <Status>String</Status>
  <Url>String</Url>
</StripeCheckoutQueryResponse>