BokaMera.API.Host

<back to all web services

QvicklyCheckoutIpnCallBack

The following routes are available for this service:
POST/payment/billmate/v1/ipncallbackIPN callback for Qvickly checkout 1.0IPN callback for Qvickly checkout 1.0
import 'package:servicestack/servicestack.dart';

class IpnCallBackResponse implements IConvertible
{
    String? Message;
    bool? Success;

    IpnCallBackResponse({this.Message,this.Success});
    IpnCallBackResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Message = json['Message'];
        Success = json['Success'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Message': Message,
        'Success': Success
    };

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

class ServerDataResponse implements IConvertible
{
    String? HTTP_HOST;
    String? HTTP_CONNECTION;
    String? HTTP_CACHE_CONTROL;
    String? HTTP_ACCEPT;
    String? HTTP_USER_AGENT;
    String? HTTP_ACCEPT_ENCODING;
    String? HTTP_ACCEPT_LANGUAGE;
    String? PATH;
    String? SERVER_SOFTWARE;
    String? SERVER_NAME;
    String? SERVER_ADDR;
    String? SERVER_PORT;
    String? REMOTE_ADDR;
    String? REMOTE_PORT;
    String? GATEWAY_INTERFACE;
    String? SERVER_PROTOCOL;
    String? REQUEST_METHOD;
    String? QUERY_STRING;
    String? REQUEST_TIME;

    ServerDataResponse({this.HTTP_HOST,this.HTTP_CONNECTION,this.HTTP_CACHE_CONTROL,this.HTTP_ACCEPT,this.HTTP_USER_AGENT,this.HTTP_ACCEPT_ENCODING,this.HTTP_ACCEPT_LANGUAGE,this.PATH,this.SERVER_SOFTWARE,this.SERVER_NAME,this.SERVER_ADDR,this.SERVER_PORT,this.REMOTE_ADDR,this.REMOTE_PORT,this.GATEWAY_INTERFACE,this.SERVER_PROTOCOL,this.REQUEST_METHOD,this.QUERY_STRING,this.REQUEST_TIME});
    ServerDataResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        HTTP_HOST = json['HTTP_HOST'];
        HTTP_CONNECTION = json['HTTP_CONNECTION'];
        HTTP_CACHE_CONTROL = json['HTTP_CACHE_CONTROL'];
        HTTP_ACCEPT = json['HTTP_ACCEPT'];
        HTTP_USER_AGENT = json['HTTP_USER_AGENT'];
        HTTP_ACCEPT_ENCODING = json['HTTP_ACCEPT_ENCODING'];
        HTTP_ACCEPT_LANGUAGE = json['HTTP_ACCEPT_LANGUAGE'];
        PATH = json['PATH'];
        SERVER_SOFTWARE = json['SERVER_SOFTWARE'];
        SERVER_NAME = json['SERVER_NAME'];
        SERVER_ADDR = json['SERVER_ADDR'];
        SERVER_PORT = json['SERVER_PORT'];
        REMOTE_ADDR = json['REMOTE_ADDR'];
        REMOTE_PORT = json['REMOTE_PORT'];
        GATEWAY_INTERFACE = json['GATEWAY_INTERFACE'];
        SERVER_PROTOCOL = json['SERVER_PROTOCOL'];
        REQUEST_METHOD = json['REQUEST_METHOD'];
        QUERY_STRING = json['QUERY_STRING'];
        REQUEST_TIME = json['REQUEST_TIME'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'HTTP_HOST': HTTP_HOST,
        'HTTP_CONNECTION': HTTP_CONNECTION,
        'HTTP_CACHE_CONTROL': HTTP_CACHE_CONTROL,
        'HTTP_ACCEPT': HTTP_ACCEPT,
        'HTTP_USER_AGENT': HTTP_USER_AGENT,
        'HTTP_ACCEPT_ENCODING': HTTP_ACCEPT_ENCODING,
        'HTTP_ACCEPT_LANGUAGE': HTTP_ACCEPT_LANGUAGE,
        'PATH': PATH,
        'SERVER_SOFTWARE': SERVER_SOFTWARE,
        'SERVER_NAME': SERVER_NAME,
        'SERVER_ADDR': SERVER_ADDR,
        'SERVER_PORT': SERVER_PORT,
        'REMOTE_ADDR': REMOTE_ADDR,
        'REMOTE_PORT': REMOTE_PORT,
        'GATEWAY_INTERFACE': GATEWAY_INTERFACE,
        'SERVER_PROTOCOL': SERVER_PROTOCOL,
        'REQUEST_METHOD': REQUEST_METHOD,
        'QUERY_STRING': QUERY_STRING,
        'REQUEST_TIME': REQUEST_TIME
    };

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

class CredentialsResponse implements IConvertible
{
    String? hash;
    String? id;
    String? version;
    String? client;
    ServerDataResponse? serverdata;
    String? time;
    String? test;
    String? language;

    CredentialsResponse({this.hash,this.id,this.version,this.client,this.serverdata,this.time,this.test,this.language});
    CredentialsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        hash = json['hash'];
        id = json['id'];
        version = json['version'];
        client = json['client'];
        serverdata = JsonConverters.fromJson(json['serverdata'],'ServerDataResponse',context!);
        time = json['time'];
        test = json['test'];
        language = json['language'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'hash': hash,
        'id': id,
        'version': version,
        'client': client,
        'serverdata': JsonConverters.toJson(serverdata,'ServerDataResponse',context!),
        'time': time,
        'test': test,
        'language': language
    };

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

class QvicklyIpnCallbackResponseData implements IConvertible
{
    String? number;
    String? status;
    String? orderid;
    String? url;

    QvicklyIpnCallbackResponseData({this.number,this.status,this.orderid,this.url});
    QvicklyIpnCallbackResponseData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        number = json['number'];
        status = json['status'];
        orderid = json['orderid'];
        url = json['url'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'number': number,
        'status': status,
        'orderid': orderid,
        'url': url
    };

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

class QvicklyCheckoutIpnCallBack implements ICompany, IConvertible
{
    /**
    * The company id, if empty will use the company id for the user you are logged in with.
    */
    // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    String? CompanyId;

    /**
    * Internal reference id (Could be booking, could be Article..)
    */
    // @ApiMember(Description="Internal reference id (Could be booking, could be Article..)")
    String? BookingId;

    /**
    * The payment credentials.
    */
    // @ApiMember(Description="The payment credentials.")
    CredentialsResponse? credentials;

    /**
    * The payment ipn callback data.
    */
    // @ApiMember(Description="The payment ipn callback data.")
    QvicklyIpnCallbackResponseData? data;

    /**
    * Article type (Could be Service, rebate code types, etc..
    */
    // @ApiMember(Description="Article type (Could be Service, rebate code types, etc..", IsRequired=true)
    int? ArticleTypeId;

    QvicklyCheckoutIpnCallBack({this.CompanyId,this.BookingId,this.credentials,this.data,this.ArticleTypeId});
    QvicklyCheckoutIpnCallBack.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        BookingId = json['BookingId'];
        credentials = JsonConverters.fromJson(json['credentials'],'CredentialsResponse',context!);
        data = JsonConverters.fromJson(json['data'],'QvicklyIpnCallbackResponseData',context!);
        ArticleTypeId = json['ArticleTypeId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'BookingId': BookingId,
        'credentials': JsonConverters.toJson(credentials,'CredentialsResponse',context!),
        'data': JsonConverters.toJson(data,'QvicklyIpnCallbackResponseData',context!),
        'ArticleTypeId': ArticleTypeId
    };

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

TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
    'IpnCallBackResponse': TypeInfo(TypeOf.Class, create:() => IpnCallBackResponse()),
    'ServerDataResponse': TypeInfo(TypeOf.Class, create:() => ServerDataResponse()),
    'CredentialsResponse': TypeInfo(TypeOf.Class, create:() => CredentialsResponse()),
    'QvicklyIpnCallbackResponseData': TypeInfo(TypeOf.Class, create:() => QvicklyIpnCallbackResponseData()),
    'QvicklyCheckoutIpnCallBack': TypeInfo(TypeOf.Class, create:() => QvicklyCheckoutIpnCallBack()),
});

Dart QvicklyCheckoutIpnCallBack DTOs

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

HTTP + JSV

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

POST /payment/billmate/v1/ipncallback HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	BookingId: String,
	credentials: 
	{
		hash: String,
		id: String,
		version: String,
		client: String,
		serverdata: 
		{
			HTTP_HOST: String,
			HTTP_CONNECTION: String,
			HTTP_CACHE_CONTROL: String,
			HTTP_ACCEPT: String,
			HTTP_USER_AGENT: String,
			HTTP_ACCEPT_ENCODING: String,
			HTTP_ACCEPT_LANGUAGE: String,
			PATH: String,
			SERVER_SOFTWARE: String,
			SERVER_NAME: String,
			SERVER_ADDR: String,
			SERVER_PORT: String,
			REMOTE_ADDR: String,
			REMOTE_PORT: String,
			GATEWAY_INTERFACE: String,
			SERVER_PROTOCOL: String,
			REQUEST_METHOD: String,
			QUERY_STRING: String,
			REQUEST_TIME: String
		},
		time: String,
		test: String,
		language: String
	},
	data: 
	{
		number: String,
		status: String,
		orderid: String,
		url: String
	},
	ArticleTypeId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Message: String,
	Success: False
}