FinalizePurchase
Finalize a two-part purchase transaction. Currently only used for Steam purchases. On success, the player will be awarded the associated currencies.
Service | Operation |
---|---|
appStore | FINALIZE_PURCHASE |
Method Parameters
Parameter | Description |
---|---|
storeId | Store type |
transactionId | id of transaction to finalize |
transactionData | Store-specific purchase data |
Usage
http://localhost:3000
- C#
- C++
- Objective-C
- Java
- JavaScript
- Dart
- Cloud Code
- Raw
string storeId = "steam";
string transactionId = "12345677890123456789";
string transactionData = "{\"transId\":\"12345677890123456789\"}";
SuccessCallback successCallback = (response, cbObject) =>
{
Debug.Log(string.Format("Success | {0}", response));
};
FailureCallback failureCallback = (status, code, error, cbObject) =>
{
Debug.Log(string.Format("Failed | {0} {1} {2}", status, code, error));
};
_bc.AppStoreService.FinalizePurchase(storeId, transactionId, transactionData, successCallback, failureCallback);
const char *storeId = "steam";
const char *transactionId = "12345677890123456789";
const char *transactionData = "{\"transId\":\"12345677890123456789\"}";
_bc->getAppStoreService()->finalizePurchase(storeId, transactionId, transactionData, this);
NSString *storeId = @"steam";
NSString *transactionId = @"12345677890123456789";
NSString *transactionData = @"{\"transId\":\"12345677890123456789\"}";
BCCompletionBlock successBlock; // define callback
BCErrorCompletionBlock failureBlock; // define callback
[[_bc appStoreService] finalizePurchase:storeId
transactionId:transactionId
transactionData:transactionData
completionBlock:successBlock
errorCompletionBlock:failureBlock
cbObject:nil];
String storeId = "steam";
String transactionId = "12345677890123456789";
String transactionData = "{\"transId\":\"12345677890123456789\"}";
this; // implements IServerCallback
_bc.getAppStoreService().finalizePurchase(storeId, transactionId, transactionData, this);
public void serverCallback(ServiceName serviceName, ServiceOperation serviceOperation, JSONObject jsonData)
{
System.out.print(String.format("Success | %s", jsonData.toString()));
}
public void serverError(ServiceName serviceName, ServiceOperation serviceOperation, int statusCode, int reasonCode, String jsonError)
{
System.out.print(String.format("Failed | %d %d %s", statusCode, reasonCode, jsonError.toString()));
}
var storeId = "steam";
var transactionId = "12345677890123456789";
var transactionData = {
"transId": "12345677890123456789"
};
_bc.appStore.finalizePurchase(storeId, transactionId, transactionData, result =>
{
var status = result.status;
console.log(status + " : " + JSON.stringify(result, null, 2));
});
var storeId = "steam";
var transactionId = "12345677890123456789";
var transactionData = {
"transId": "12345677890123456789"
};
ServerResponse result = await _bc.appStoreService.finalizePurchase(storeId:storeId, transactionId:transactionId, transactionData:transactionData);
if (result.statusCode == 200) {
print("Success");
} else {
print("Failed ${result.error['status_message'] ?? result.error}");
}
var storeId = "steam";
var transactionId = "12345677890123456789";
var transactionData = {
"transId": "12345677890123456789"
};
var appStoreProxy = bridge.getAppStoreServiceProxy();
var postResult = appStoreProxy.finalizePurchase(storeId, transactionId, transactionData);
if (postResult.status == 200) {
// Success!
}
{
"service": "appStore",
"operation": "FINALIZE_PURCHASE",
"data": {
"storeId": "steam",
"transactionId": "12345677890123456789",
"transactionData": {
"transId": "12345677890123456789"
}
}
}
JSON Response
{
"data": {
"processed": true,
"itemId": "GoldWings",
"referencePrice": 199,
"promotions": null,
"resultCode": 0,
"currency": {
"goldWings": {
"consumed": 0,
"balance": 1,
"purchased": 1,
"awarded": 0
}
},
"serverTime": 1649252630210,
"store": "steam",
"transactionSummary": {
"result": "OK",
"params": {
"orderid": 100053,
"transid": 3041626742768452692
},
"rawStringResp": "{\"response\":{\"result\":\"OK\",\"params\":{\"orderid\":100053,\"transid\":3041626742768452692}}}",
"queryTxn": {
"response": {
"result": "OK",
"params": {
"orderid": "13795000000000000",
"transid": "3720612235425100000",
"steamid": "66561199055000000",
"status": "Succeeded",
"currency": "USD",
"time": "2022-04-06T17:58:32Z",
"country": "CA",
"usstate": "",
"timecreated": "2022-04-06T17:58:08Z",
"items": [
{
"itemid": 16,
"qty": 1,
"amount": 416,
"vat": 83,
"itemstatus": "Succeeded"
}
]
}
}
}
},
"rewards": {
"extra": null,
"currency": {
"goldWings": 1
}
}
},
"status": 200
}