track_charge(distinct_id, amount, properties, modifiers, callback) {
        if (typeof(properties) === 'function' || !properties) {
            callback = properties || undefined;
            properties = {};
        } else {
            if (typeof(modifiers) === 'function' || !modifiers) {
                callback = modifiers || undefined;
                if (properties.$ignore_time || properties.hasOwnProperty("$ip")) {
                    modifiers = {};
                    Object.keys(properties).forEach(function(key) {
                        modifiers[key] = properties[key];
                        delete properties[key];
                    });
                }
            }
        }

        if (typeof(amount) !== 'number') {
            amount = parseFloat(amount);
            if (isNaN(amount)) {
                this.mixpanel.config.logger.error("Invalid value passed to mixpanel.people.track_charge - must be a number");
                return;
            }
        }

        properties.$amount = amount;

        if (properties.hasOwnProperty('$time')) {
            var time = properties.$time;
            if (Object.prototype.toString.call(time) === '[object Date]') {
                properties.$time = time.toISOString();
            }
        }

        var data = {
            '$append': { '$transactions': properties },
            '$token': this.mixpanel.token,
            '$distinct_id': distinct_id
        };

        data = merge_modifiers(data, modifiers);

        if (this.mixpanel.config.debug) {
            this.mixpanel.config.logger.debug("Sending the following data to Mixpanel (Engage)", { data });
        }

        this.mixpanel.send_request({ method: "GET", endpoint: "/engage", data: data }, callback);
    }
people.track_charge(distinct_id, amount, properties, modifiers, callback)
        ---
        Record that you have charged the current user a certain
        amount of money.

        usage:

            // charge a user $29.99
            mixpanel.people.track_charge('bob', 29.99);

            // charge a user $19 on the 1st of february
            mixpanel.people.track_charge('bob', 19, { '$time': new Date('feb 1 2012') });