<?php

/**
 * Description of SampleClass
 *
 * @author gwang
 */
class SampleClass {
    //put your code here
}

/**
 * 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 {

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

}

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

    /**
     * @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;

}

/**
 * YSDK 直购通知回调数据结构
 */
class YSDK_Notify_m {

    /**
     * @var type 与APP通信的用户key，跳转到应用首页后，URL后会带该参数。由平台直接传给应用，应用原样传给平台即可。
     *   根据APPID以及QQ号码生成，即不同的appid下，同一个QQ号生成的OpenID是不一样的。
     */
    public $openid;

    /**
     * @var type itop登录态下客户端传的openid，非itop登录忽略
     */
    public $itopid;

    /**
     * @var type 应用的唯一ID。可以通过appid查找APP基本信息。
     */
    public $appid;

    /**
     * @var type linux时间戳。注意开发者的机器时间与计费服务器的时间相差不能超过15分钟。
     */
    public $ts;

    /**
     * @var type 物品信息。
     * （1）接收标准格式为ID*price*num，回传时ID为必传项。批量购买套餐物品则用“;”
     *      分隔，字符串中不能包含"|"特殊字符。
     * （2）ID表示物品ID，price表示单价（以Q点为单位，单价最少不能少于2Q点，1Q币=10Q点。
     *    单价的制定需遵循道具定价规范），num表示最终的购买数量。
     *    示例： 批量购买套餐，套餐中包含物品1和物品2。
     *        物品1的ID为G001，该物品的单价为10Q点，购买数量为1；物品2的ID为G008，该物品的单价为8Q点，购买数量为2，则payitem为：G001*10*1;G008*8*2 。
     *    注意：iap场景请勿用paytiem来发货，业务实际发货以productid为准
     */
    public $payitem;

    /**
     * @var type iap支付时客户端传的productid，道具直购发货以product_id为准
     */
    public $product_id;

    /**
     * @var type  应用调用v3/pay/buy_goods接口成功返回的交易token
     */
    public $token;

    /**
     * @var type 支付流水号（最大64个字符长度。该字段和openid合起来是唯一的）。
     */
    public $billno;

    /**
     * @var type 协议版本号，由于基于V3版OpenAPI，这里一定返回“v3”。
     */
    public $version;

    /**
     * @var type 在支付营销分区配置说明页面，配置的分区ID即为这里的“zoneid”。
     *       如果应用不分区，则为0。 回调发货的时候，根据这里填写的zoneid实现分区发货。
     *   注：2013年后接入的寄售应用，此参数将作为分区发货的重要参数，如果因为参数传错或为空造成的收入损失，由开发商自行承担。
     */
    public $zoneid;

    /**
     * @var string 回调类型。道具直购模式下为 5
     */
    public $providetype;

    /**
     * @var type Q点/Q币消耗金额或财付通游戏子账户的扣款金额。可以为空，若传递空值或不传本参数则表示未使用Q点/Q币/财付通游戏子账户。
     * 允许游戏币、Q点、抵扣券三者混合支付，或只有其中某一种进行支付的情况。
     * 用户购买道具时，系统会优先扣除用户账户上的游戏币，游戏币余额不足时，使用Q点支付，Q点不足时使用Q币/财付通游戏子账户。
     * 这里的amt的值将纳入结算，参与分成。 注意，这里以0.1Q点为单位。即如果总金额为18Q点，则这里显示的数字是180。请开发者关注，特别是对账的时候注意单位的转换。
     */
    public $amt;

    /**
     * @var type 在buy_goods_m的设定的自定义参数appmeta，会透传到appmeta里，格式为 自定义字段*支付方式*平台渠道，比如customkey*qdqb*qq。
     * 应用侧这边根据此格式自行提取自定义部分的值。注意如果有比如“-”、“_”等特殊符号，在计算sig时替换为“%2D”、“%5F”等。
     */
    public $appmeta;

    /**
     * @var type 财付通订单号
     */
    public $cftid;

    /**
     * @var type 前端透传字段，pf部分字段-支付渠道。
     * 例如pf=desktop_m_qq-2001-android-2011-xxxx
     * 使用微信支付，则channel_id=2001-android-2011-xxxx-wechat
     */
    public $channel_id;

    /**
     * @var type 手机端版本号
     */
    public $clientver;

    /**
     * @var type 扣取的游戏币总数，单位为Q点。可以为空，若传递空值或不传本参数则表示未使用游戏币。
     *  允许游戏币、Q点、抵扣券三者混合支付，或只有其中某一种进行支付的情况。用户购买道具时，系统会优先扣除用户账户上的游戏币，游戏币余额不足时，使用Q点支付，Q点不足时使用Q币/财付通游戏子账户。
     *  游戏币由平台赠送或由好友打赏，平台赠送的游戏币不纳入结算，即不参与分成；好友打赏的游戏币按消耗量参与结算（详见：货币体系与支付场景）
     */
    public $payamt_coins;

    /**
     * @var type   扣取的抵用券总金额，单位为Q点。可以为空，若传递空值或不传本参数则表示未使用抵扣券。
     * 允许游戏币、Q点、抵扣券三者混合支付，或只有其中某一种进行支付的情况。
     * 用户购买道具时，可以选择使用抵扣券进行一部分的抵扣，剩余部分使用游戏币/Q点。
     * 平台默认所有上线支付的应用均支持抵扣券。自2012年7月1日起，金券银券消耗将和Q点消耗一起纳入收益计算（详见：货币体系与支付场景）。
     */
    public $pubacct_payamt_coins;

    /**
     * @var type 干扰字段，第一个字母动态变化（a~z随机）
     */
    public $bazinga;

    /**
     * @var type 请求串的签名，由需要签名的参数生成。
     */
    public $sig;

}
