<?php

/**
 * YSDK通用返回
 */
class YSDK_Ret {

    /**
     * @var int 错误码. 0: 成功, 其他非0: 失败
     * @link https://wiki.midas.qq.com/post/index/1/33/21/0 常见错误码参考
     */
    public $ret;

    /**
     * @var string ret不为0的时候, 错误信息(utf-8编码)
     */
    public $msg;

}

/**
 * 查询游戏币余额接口返回值结构
 */
class YSDK_Ret_get_balance_m extends YSDK_Ret {

    /**
     * @var int 游戏币个数(包含赠送游戏币)
     */
    public $balance;

    /**
     *
     * @var int 赠送游戏币数量(balance中赠送游戏币数量)
     */
    public $gen_balance;

    /**
     *
     * @var int 是否满足历史首次充值, 1: 满足, 0: 不满足
     */
    public $first_save;

    /**
     * @var type 腾讯视频积分过期信息（其他产品无需关注）
     */
    public $expire_info;

    /**
     * @var int 累计充值金额(游戏币数量)
     */
    public $save_amt;

    /**
     * @var int 历史总游戏币金额
     */
    public $save_sum;

    /**
     *
     * @var int 历史总消费游戏币金额
     */
    public $cost_num;

    /**
     *
     * @var int 历史累计收到赠送游戏币金额
     */
    public $present_num;

    /**
     * 付费订阅信息
     * @var TSS_List
     */
    public $tss_list;

    /**
     * @deprecated since version 0 该字段已作废
     * @var type
     */
    public $gen_expire;

}

/**
 * 订阅信息
 */
class TSS_List {

    /**
     * @var type 用户开通的订阅物品ID（注：该参数为订阅型月卡配置时候的servicecode）
     */
    public $inner_productid;

    /**
     *
     * @var type 用户订阅的开始时间 如过期后未续费，且一段时间后再次订阅 返回的是新的订阅开始时间
     */
    public $begintime;

    /**
     *
     * @var type 用户订阅的结束时间
     */
    public $endtime;

    /**
     *
     * @var type 用户订阅该物品id最后一次的支付渠道
     */
    public $paychan;

    /**
     *
     * @var type 用户订阅该物品id最后一次的支付子渠道id
     */
    public $paysubchan;

    /**
     *
     * @var type 自动续费渠道
     */
    public $autopaychan;

    /**
     *
     * @var type 自动续费子渠道
     */
    public $autopaysubchan;

    /**
     *
     * @var type 用户订阅历史累计开通天数
     */
    public $grandtotal_opendays;

    /**
     *
     * @var type 用户订阅历史累计赠送天数
     */
    public $grandtotal_presentdays;

    /**
     *
     * @var type 首次购买时间
     */
    public $first_buy_time;

    /**
     *
     * @var type 预留扩展字段，目前没有使用
     */
    public $extend;

    /**
     *
     * @var Third_Channel_Info_List 三方渠道信息
     */
    public $third_channel_info_list;

    /**
     * @deprecated since version 0 (旧)废弃
     * @var type
     */
    public $third_channel_info;

}

/**
 * 三方渠道
 */
class Third_Channel_Info_List {

    /**
     * @var type 付费渠道
     */
    public $pay_channel;

    /**
     * @var type 付费子渠道号
     */
    public $pay_subchannel;

    /**
     * @var type 自动续费到期时间
     */
    public $end_time;

    /**
     * @var type 自动续费物品ID
     */
    public $productid;

    /**
     * @var type 最近一笔自动续费订单号
     */
    public $latest_billno;

    /**
     * @var int 自动续费状态："1"代表有效,"0"代表无效
     */
    public $state;

}

/**
 * YSDK 消耗游戏币接口返回值
 */
class YSDK_Ret_pay_m extends YSDK_Ret {

    /**
     * @var int 预扣流水号（调接口时有传就返回的业务传的billno），该流水号有效期48小时
     */
    public $billno;

    /**
     * @var int 预扣后的余额
     */
    public $balance;

    /**
     * @var int 赠送游戏币数量（balance中赠送游戏币数量）
     */
    public $gen_balance;

    /**
     * @var int 本次扣的赠送币的金额
     */
    public $used_gen_amt;

}

/**
 * YSDK 取消订单接口返回值
 */
class YSDK_Ret_cancel_pay_m extends YSDK_Ret {

    /**
     *
     * @var int 取消后的余额
     */
    public $balance;

    /**
     *
     * @var int 赠送游戏币数量（balance中赠送游戏币数量）
     */
    public $gen_balance;

    /**
     * @var mix 成功取消的订单号
     */
    public $billno;

}

/**
 * YSDK 赠送游戏币接口返回值
 */
class YSDK_Ret_present_m extends YSDK_Ret {

    /**
     *
     * @var int 成功后最新的游戏币余额
     */
    public $balance;

}

/**
 * YSDK 直购下单接口返回值
 */
class YSDK_Ret_buy_goods_m extends YSDK_Ret {

    /**
     * @var type 交易的token号（ret=0时才保存，token长度不超过64个字符）。
     * 在后续的扣费成功后调用应用的发货接口时会将token传给应用，作为本次交易的标识。
     */
    public $token;

    /**
     * @var type ret为0的时候，返回真正购买物品的url的参数，开发者需要把该参数传给sdk支付接口使用户完成真正的购买动作。
     * 注意，交易的token有效期为5分钟（原15分钟），必须在5分钟内将token传给应用来调用发货接口，否则将会返回1005流水号不存在的错误。这里token有效期指的是下单到支付的时间
     */
    public $url_params;

}
