51 lines
1.5 KiB
Protocol Buffer
51 lines
1.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package gatewayprotocol.v1;
|
|
|
|
import "gatewayprotocol/v1/dynamic_device_info.proto";
|
|
import "gatewayprotocol/v1/static_device_info.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option swift_prefix = "Gateway";
|
|
|
|
enum StoreType {
|
|
STORE_TYPE_UNSPECIFIED = 0;
|
|
STORE_TYPE_CUSTOM = 1;
|
|
STORE_TYPE_APPLE_APP_STORE = 2; // "AppleAppStore"
|
|
STORE_TYPE_GOOGLE_PLAY = 3; // "GooglePlay"
|
|
}
|
|
|
|
enum TransactionState {
|
|
TRANSACTION_STATE_UNSPECIFIED = 0;
|
|
TRANSACTION_STATE_PENDING = 1;
|
|
TRANSACTION_STATE_PURCHASED = 2;
|
|
TRANSACTION_STATE_FAILED = 3;
|
|
TRANSACTION_STATE_RESTORED = 4;
|
|
TRANSACTION_STATE_DEFERRED = 5;
|
|
}
|
|
|
|
message TransactionData {
|
|
google.protobuf.Timestamp timestamp = 1;
|
|
string product_id = 2;
|
|
bytes event_id = 3; // Unique identifier for the event (e.g. UUID 16 bytes)
|
|
string transaction_id = 4;
|
|
string product = 5; // Product data as JSON
|
|
string transaction = 6; // Transaction data as JSON
|
|
optional string receipt = 7; // iOS only
|
|
TransactionState transaction_state = 8;
|
|
}
|
|
|
|
// Request sent from WebView to Gateway to report Transaction Event (IAP)
|
|
message TransactionEventRequest {
|
|
// Static Device Info properties
|
|
StaticDeviceInfo static_device_info = 1;
|
|
// Dynamic Device Info properties
|
|
DynamicDeviceInfo dynamic_device_info = 2;
|
|
// "AppleAppStore", "GooglePlay" (shall we consider an enum?)
|
|
StoreType app_store = 3;
|
|
// Custom store name (e.g. "AmazonAppStore") only used if app_store is STORE_TYPE_CUSTOM
|
|
string custom_store = 4;
|
|
// Transaction Data
|
|
repeated TransactionData transaction_data = 5;
|
|
}
|