Skip to main content
Version: SDK-5.11.2

ChargeTBC

Android

public BackendReturnObject ChargeTBC(string receiptJson, string details);

iOS

public BackendReturnObject ChargeTBC(string productId, string receiptToken, string details);

Parameters

Android

ValueTypeDescription
receiptJsonstringValue of Purchasing.PurchaseEventArgs.purchasedProduct.receipt
detailsstringAdditional details to be stored

iOS

ValueTypeDescription
productIdstringID value of the purchased product
receiptTokenstringReceipt token issued after purchase
detailsstringAdditional details to be stored

Description

After validating the receipt token, TBC(The Backend Coin) that matches the productId is provided.

To call the ChargeTBC method, you must first register the cash that matches the corresponding productId(product ID) in BACKND Console.
For more information on how to register cash, refer to Console guide - game cash management.

For the ChargeTBC method, the methods to be called in Android and iOS vary.
For iOS, productId is not included in the receipt token; therefore, you must enter the productId as the first parameter value.

Android Example

Receipt verification using receiptJson obtained via Unity IAP service

Synchronous

public Purchasing.PurchaseProcessingResult ProcessPurchase(Purchasing.PurchaseEventArgs args){
Backend.TBC.ChargeTBC(args.purchasedProduct.receipt, "Big discount!");
return PurchaseProcessingResult.Complete;
}

Asynchronous

public Purchasing.PurchaseProcessingResult ProcessPurchase(Purchasing.PurchaseEventArgs args)
{
Backend.TBC.ChargeTBC(args.purchasedProduct.receipt, "Big discount!", (callback) =>
{
// Post-process
});
return PurchaseProcessingResult.Complete;
}

SendQueue

public Purchasing.PurchaseProcessingResult ProcessPurchase(Purchasing.PurchaseEventArgs args)
{
SendQueue.Enqueue(Backend.TBC.ChargeTBC, args.purchasedProduct.receipt, "Big discount!", callback =>
{
// Post-process
});
return PurchaseProcessingResult.Complete;
}

iOS Example

Receipt verification using the receipt token obtained via Unity IAP service

Synchronous

public Purchasing.PurchaseProcessingResult ProcessPurchase(Purchasing.PurchaseEventArgs args){
Backend.TBC.ChargeTBC("pId", args.purchasedProduct.receipt, "Big discount!");
return PurchaseProcessingResult.Complete;
}

Asynchronous

public Purchasing.PurchaseProcessingResult ProcessPurchase(Purchasing.PurchaseEventArgs args)
{
Backend.TBC.ChargeTBC("pId", args.purchasedProduct.receipt, "Big discount!", (callback) =>
{
// Post-process
});
return PurchaseProcessingResult.Complete;
}

SendQueue

public Purchasing.PurchaseProcessingResult ProcessPurchase(Purchasing.PurchaseEventArgs args)
{
SendQueue.Enqueue(Backend.TBC.ChargeTBC, "pId", args.purchasedProduct.receipt, "Big discount!", callback =>
{
// Post-process
});
return PurchaseProcessingResult.Complete;
}

Return cases

Success cases

When the recharging is successful
statusCode : 201
message : Success returnValue : refer to GetReturnValuetoJSON

Error cases

Expired receipt token
statusCode : 400
errorCode : BadParameterException
message : bad token, Invalid token

Receipt of refund/cancellation
statusCode : 402
errorCode : AbnormalReceipt
message : This receipt has changed status. purchaseState: cancelled

When a product not in BACKND Console was purchased
statusCode : 404
errorCode : NotFoundException
message : proudctId not found, proudctId cannot be found

Already used receipt token
statusCode : 409
errorCode : UsedReceipt
message : This receipt has already been used. usedDate: 2018-02-15T04:01:50.000Z

GetReturnValuetoJSON

{ 
usedTBC: 450, // Amount of recharged TBC
amountTBC: 947.047 // User's total TBC after recharging
}