// To understand how to create products
    // see https://partner.steamgames.com/doc/features/microtransactions/implementation
    public void InitializePurchase()
    {
        string userId = SteamUser.GetSteamID().ToString();

        String orderId = currentOrder;

        HttpRequestArgs argsRequest = new HttpRequestArgs();

        argsRequest.data.Add("itemId", "item_id_1");
        argsRequest.data.Add("steamUser", userId);
        argsRequest.data.Add("currency", 199); // equal to $1.99
        argsRequest.data.Add("orderId", orderId);
        argsRequest.data.Add("itemDescription", "1000 Coins");
        argsRequest.data.Add("category", "Gold");

        // you can use your own library to call the API if you want to.
        this.MakeApiCall("InitPurchase", argsRequest, (HttpJsonResponse response) =>
        {
            ApiReturnTransaction ret = JsonUtility.FromJson <ApiReturnTransaction>(response.rawResponse);
            if (ret.transid != "")
            {
                Debug.Log("Transaction initiated. Id:" + ret.transid);
                this.currentTransactionId = ret.transid;
            }
        }, (HttpRequestError error) => {
            Debug.Log(error.message);
        }, true, HttpRequestContainerType.POST);
    }
    public void FinishPurchase(string OrderId)
    {
        HttpRequestArgs argsRequest = new HttpRequestArgs();

        argsRequest.data.Add("orderId", orderId.ToString());

        this.MakeApiCall("FinalizePurchase", argsRequest, (HttpJsonResponse response) =>
        {
            ApiReturnTransaction ret = JsonUtility.FromJson <ApiReturn>(response.rawResponse);
            if (ret.success)
            {
                // after confirmation, you can give the item for the player
                currentCoins += 1000;
                Debug.Log("Transaction Finished.");
                this._isInPurchaseProcess = false;
            }
        }, (HttpRequestError error) => {
            Debug.Log(error.message);
        }, true, HttpRequestContainerType.POST);
    }