/**
* Description of CV3Util
* V3 API工具类[APHP三大操作单元之一]
* @author jgao
*/
class CV3Util
{
//
// ----以下为通用常量定义----
/**
* qq空间
*/
const qzone = 'qzone';
/**
* 朋友网
*/
const pengyou = 'pengyou';
//put your code here
/**
* V3SDK
* @var OpenApiV3
*/
var $sdk = 0;
var $appkey;
//
//
//
/**
* 初始化V3链接
* @param type $host
* @param type $appid
* @param type $appkey
* @return \OpenApiV3
*/
function v3conn($host, $appid, $appkey)
{
$this->appkey = $appkey;
$this->sdk = new OpenApiV3($appid, $appkey);
$this->sdk->setServerName($host);
return $this->sdk;
}
/**
* 关闭V3链接
*/
function close()
{
}
/**
* 获取通用参数格式
* @param type $openid
* @param type $openkey
* @param type $pf
* @return type
*/
function getParams($openid, $openkey, $pf)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
);
return $params;
}
//
//
// ----这里补充具体的后台API调用----
/**
* cee付费sig校验流程
* @param type $params
* @return type
*/
function cee_verify_sig($params, $url_path, &$sig_new)
{
// 获取原sig
$sig = urldecode($params['sig']);
$secret = $this->appkey . '&';
return SnsSigCheck::verifySig('GET', $url_path, $params, $secret, $sig, $sig_new);
}
/**
* 生成自定义sig证书
* @param type $params
* @param type $url_path
* @return type
*/
function cee_self_sig($params, $self_url_path)
{
$secret = $this->appkey . '&';
foreach ($params as $k => $v) {
$params[$k] = md5($v);
}
return SnsSigCheck::makeSig('GET', $self_url_path, $params, $secret);
}
//
//
//
/**
* ==============用户信息类API==============
* 主要使用场景:应用中需要进行用户信息展示时。
*/
/**
* 获取玩家信息
* @param type $openid
* @param type $openkey
* @param type $pf
* @return type
*/
function user_get_info($openid, $openkey, $pf)
{
$params = $this->getParams($openid, $openkey, $pf);
return $this->sdk->api('/v3/user/get_info', $params, array(), 'post');
}
/**
* 批量获取玩家信息
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $fopenids
* @return type
*/
function user_get_multi_info($openid, $openkey, $pf, $fopenids)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'fopenids' => $fopenids,
);
return $this->sdk->api('/v3/user/get_multi_info', $params, array(), 'post');
}
/**
* 获取登录用户的VIP信息,包括是否为QQ会员,蓝钻,黄钻,红钻,绿钻,粉钻,超级QQ,3366会员,是否为豪华版,是否年费(暂不能查询是否年费红钻),以及VIP等级。
* 1. 传一个参数,返回对应的一种VIP信息;
* 2. 不传参数,默认返回蓝钻和黄钻两种信息;
* 3. 支持查询VIP是否为豪华版的信息;
* 4. 支持查询3366会员等级信息;
* 5. 支持xml返回格式。
* @param type $openid //平台参数
* @param type $openkey
* @param type $pf
* @param type $member_vip //是否查询QQ会员信息,1为查询,0或者不写为不查询
* @param type $blue_vip //是否查询蓝钻信息,1为查询,0或者不写为不查询。
* @param type $yellow_vip //是否查询黄钻信息,1为查询,0或者不写为不查询。
* @param type $red_vip //是否查询红钻信息,1为查询,0或者不写为不查询。
* @param type $green_vip //是否查询绿钻信息,1为查询,0或者不写为不查询。
* @param type $pink_vip //是否查询粉钻信息,1为查询,0或者不写为不查询。
* @param type $superqq //是否查询超级qq信息,1为查询,0或者不写为不查询。
* @param type $is_3366 //是否查询3366信息,1为查询,0或者不写为不查询。
* @return type
*/
function user_total_vip_info($openid, $openkey, $pf, $member_vip = 0, $blue_vip = 0, $yellow_vip = 0, $red_vip = 0, $green_vip = 0, $pink_vip = 0, $superqq = 0, $is_3366 = 0
)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'member_vip' => $member_vip,
'blue_vip' => $blue_vip,
'yellow_vip' => $yellow_vip,
'red_vip' => $red_vip,
'green_vip' => $green_vip,
'pink_vip' => $pink_vip,
'superqq' => $superqq,
'is_3366' => $is_3366
);
return $this->sdk->api('v3/user/total_vip_info', $params, array(), 'post');
}
/**
* 验证登录用户是否黄钻,是否年费黄钻,如果是则返回其黄钻等级等信息。
*
* 注意,本接口与“获取用户信息”接口都返回了黄钻信息,但是二者之间有区别:
* (1)本接口获取的黄钻信息是实时的,适用于需要黄钻信息特别准确的场景(例如每日礼包场景中,非黄钻用户开通黄钻后,返回应用应该立即可领取礼包);
* (2)“获取用户信息”接口(v3/user/get_info)返回的否黄钻以及黄钻等级的信息是经过缓存的,有一定的延时,适用于不需要黄钻信息特别准确的场景(例如用户头像后的黄钻标识)。
* @param type $openid
* @param type $openkey
* @param type $pf
* @return type
*/
function user_is_vip($openid, $openkey, $pf)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf
);
return $this->sdk->api('v3/user/is_vip', $params, array(), 'post');
}
/**
* 查询用户的一个或多个好友是否开通了腾讯某个业务的VIP。目前只支持查询QQ会员信息(可查询到用户是否为QQ会员,年费会员,以及会员等级等)。
*
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $fopenids //需要获取信息的好友的openid列表,openid之间通过“_”分隔,每次最多可输入50个。
* @param type $flags //VIP业务查询标识。目前只支持查询QQ会员信息:qq_vip。 后期会支持更多业务的用户VIP信息查询。如果要查询多种VIP业务,通过“,”分隔。如果不输入该值,默认为全部查询。
* @return type
*/
function user_friends_vip_info($openid, $openkey, $pf, $fopenids, $flags = null
)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'fopenids' => $fopenids,
'flags' => $flags
);
return $this->sdk->api('v3/user/friends_vip_info', $params, array(), 'post');
}
//
//
//
/**
* 敏感词过滤
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $content
* @param type $msgId
* @return type
*/
function word_filter($openid, $openkey, $pf, $content, $msgId
)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'content' => $content,
'msgid' => $msgId
);
return $this->sdk->api('/v3/csec/word_filter', $params, array(), 'post');
}
//
//
//
//
/**
* 移动支付api
* @param string $script_name 调用的API方法,比如/mpay/present_m,参考 http://wiki.mg.open.qq.com/index.php?title=Android%E6%94%AF%E4%BB%98API
* @param array $params 调用API时带的参数
* @param string $method 请求方法 post / get
* @param string $protocol 协议类型 http / https
* @return type 结果
*/
private function msdk_Api($script_name, $params, $cookie = array(), $method = 'post', $protocol = 'http')
{
$this->sdk->setServerName(MSDK_HOST);
// $ret = $this->sdk->api($script_name, $params, $cookie, $method, $protocol);
$ret = $this->sdk->ymsdk_api($script_name, $params, $cookie, $method, $protocol);
$this->sdk->setServerName(V3_HOST);
return $ret;
}
/**
* 赠送游戏币接口,应用在后台自助申请赠送游戏币的营销活动,获取到活动号和礼包ID后
* 调用本接口赠送。赠送的游戏币不参与结算分成。
* @param str $platform 1 微信 2 手Q
* @param str $openid
* @param str $openkey
* @param str $pf
* @param str $paytoken
* @param str $appid
* @param str $pfkey
* @param int $ts
* @param str $zoneid 分区Id
* @param str $discountid 赠送营销活动ID。(营销平台申请)
* @param type $giftid 礼品ID。(营销平台申请)
* @param type $presenttimes 赠送礼品的次数。如果配置的礼包ID对应1个游戏币,那么本字段表示要赠送游戏币的个数。
* @param type $userip (可选)用户的外网IP
* @return V3Return
*/
function msdk_present($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $discountid, $giftid, $presenttimes)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pay_token' => $paytoken,
'pf' => $pf,
'pfkey' => $pfkey,
'appid' => $appid,
'zoneid' => $zoneid,
'ts' => $ts,
'discountid' => $discountid,
'giftid' => $giftid,
'presenttimes' => $presenttimes,
// 'userip' => $userip, // (可选) 用户的外网IP
// 'format' => "json" // (可选)json、jsonp_$func。 默认json。如果
);
// 这个需要在cookie里面传一些参数
$cookie = self::ymsdk_makeCookie($platform);
$cookie['org_loc'] = "/mpay/present_m";
return $this->msdk_Api('/mpay/present_m', $params, $cookie, 'get');
}
/**
* 查询游戏币余额接口
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $paytoken
* @param type $appid
* @param type $pfkey
* @param type $ts
* @param str $zoneid 分区Id
* @return V3Return
*/
function msdk_get_balance($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pay_token' => $paytoken,
'appid' => $appid,
'ts' => $ts,
'pf' => $pf,
'pfkey' => $pfkey,
'zoneid' => $zoneid,
// 'userip' => $userip, // (可选) 用户的外网IP
// 'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
// 'format' => "json", // (可选)json、jsonp_$func。 默认json。如果
);
// 这个需要在cookie里面传一些参数
$cookie = self::ymsdk_makeCookie($platform);
$cookie['org_loc'] = "/mpay/get_balance_m";
return $this->msdk_Api('/mpay/get_balance_m', $params, $cookie, 'get');
}
/**
* 扣除游戏币接口
* @param string $platform
* @param string $openid
* @param string $openkey
* @param string $pf
* @param string $paytoken
* @param string $appid
* @param string $pfkey
* @param int $ts
* @param string $sig
* @param int $amt 扣游戏币数量。
* @param type $payitem 道具名称。
* @param type $appremark 备注。会写到账户流水。
* @return V3Return
*/
function msdk_pay($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $amt, $payitem, $appremark)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pay_token' => $paytoken,
'appid' => $appid,
'ts' => $ts,
'pf' => $pf,
'pfkey' => $pfkey,
'zoneid' => $zoneid,
'amt' => $amt,
'payitem' => $payitem, // (可选)道具名称
// 'userip' => $userip, // (可选) 用户的外网IP
// 'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
// 'format' => "json", // (可选)json、jsonp_$func。 默认json。如果
'appremark' => $appremark // (可选)备注。会写到账户流水。
);
// 这个需要在cookie里面传一些参数
$cookie = self::ymsdk_makeCookie($platform);
$cookie['org_loc'] = "/mpay/pay_m";
return $this->msdk_Api('/mpay/pay_m', $params, $cookie, 'get');
}
/**
* 取消支付接口
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $paytoken
* @param type $appid
* @param type $pfkey
* @param type $ts
* @param type $amt 扣游戏币数量
* @param type $billno 预扣流水号
* @param type $userip (可选)用户的外网ip
* @param type $accounttype (可选)账户类型,基础货币(common)安全货币(security),不填默认common
* @return V3Return
*/
function msdk_cancel_pay($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $amt, $billno)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pay_token' => $paytoken,
'appid' => $appid,
'ts' => $ts,
'pf' => $pf,
'pfkey' => $pfkey,
'zoneid' => $zoneid,
'amt' => $amt,
'billno' => $billno,
// 'userip' => $userip, // (可选) 用户的外网IP
// 'accounttype' => $accounttype // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
// 'format' => "json" // (可选)json、jsonp_$func。 默认json。如果
);
// 这个需要在cookie里面传一些参数
$cookie = self::ymsdk_makeCookie($platform);
$cookie['org_loc'] = "/mpay/cancel_pay_m";
return $this->msdk_Api('/mpay/cancel_pay_m', $params, $cookie, 'get');
}
//
//
//
/**
* 移动支付api
* @param string $script_name 调用的API方法,比如/mpay/present_m,参考 http://wiki.mg.open.qq.com/index.php?title=Android%E6%94%AF%E4%BB%98API
* @param array $params 调用API时带的参数
* @param string $method 请求方法 post / get
* @param string $protocol 协议类型 https
* @return type 结果
*/
private function ysdk_Api($script_name, $params, $cookie = array(), $method = 'post', $protocol = 'https')
{
$this->sdk->setServerName(YSDK_HOST); // 设置sdk服务端地址
// $ret = $this->sdk->api($script_name, $params, $cookie, $method, $protocol);
$ret = $this->sdk->ymsdk_api($script_name, $params, $cookie, $method, $protocol);
$this->sdk->setServerName(V3_HOST);
return $ret;
}
/**
* 查询游戏币余额接口
* @param type $sessionId
* @param type $sessionType
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $appid
* @param type $pfkey
* @param type $ts
* @return type
*/
function ysdk_get_balance($sessionId, $sessionType, $openid, $openkey, $pf, $appid, $pfkey, $ts)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'appid' => $appid,
'ts' => $ts,
'pf' => $pf,
'pfkey' => $pfkey,
'zoneid' => 1, // 多平台版本,在腾讯没有设置多分区信息
// 'userip' => $userip, // (可选) 用户的外网IP
// 'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
// 'format' => "json", // (可选)json、jsonp_$func。 默认json。如果
);
// 这个需要在cookie里面传一些参数
$cookie = self::ymsdk_makeCookie($sessionId, $sessionType, "/mpay/get_balance_m");
return $this->ysdk_Api('/mpay/get_balance_m', $params, $cookie, "get"); // ysdk在这里比msdk多加了个/v3/r
}
/**
* 扣除游戏币接口
* @param type $sessionId
* @param type $sessionType
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $appid
* @param type $pfkey
* @param type $ts
* @param int $amt 扣游戏币数量。
* @param string $billno 订单号,业务自定义,业务需要确保全局的唯一性;相同的订单号不会重复扣款。长度不超过63字节,数字和字符不限,不能包含特殊字符如&= | % ^ + 等即可
* @param string $payitem 道具名称。
* @param string $appremark 备注。会写到账户流水。
* @return V3Return
*/
function ysdk_pay($sessionId, $sessionType, $openid, $openkey, $pf, $appid, $pfkey, $ts, $amt, $billno, $payitem, $appremark)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'appid' => $appid,
'ts' => $ts,
'pf' => $pf,
'pfkey' => $pfkey,
'zoneid' => 1,
'amt' => $amt,
'billno' => $billno, // 预扣流水号(业务自己定义,业务需要确保全局唯一性;
// 相同的订单号不会重复扣款,长度不超过63个字节,数字字符不限,不能包含特殊字符&|=%^+等即可)
'payitem' => $payitem, // (可选)道具名称
// 'userip' => $userip, // (可选) 用户的外网IP
// 'accounttype' => $accounttype, // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
// 'format' => "json", // (可选)json、jsonp_$func。 默认json。如果
'appremark' => $appremark // (可选)备注。会写到账户流水。
);
// 这个需要在cookie里面传一些参数
$cookie = self::ymsdk_makeCookie($sessionId, $sessionType, "/mpay/pay_m");
return $this->ysdk_Api('/mpay/pay_m', $params, $cookie, "get"); // ysdk在这里比msdk多加了个/v3/r
}
//
//
// /**
// * 赠送游戏币接口,应用在后台自助申请赠送游戏币的营销活动,获取到活动号和礼包ID后
// * 调用本接口赠送。赠送的游戏币不参与结算分成。
// * @param str $platform 1 微信 2 手Q
// * @param str $openid
// * @param str $openkey
// * @param str $pf
// * @param str $appid
// * @param str $pfkey
// * @param int $ts
// * @param str $zoneid 分区Id
// * @param str $discountid 赠送营销活动ID。(营销平台申请)
// * @param type $giftid 礼品ID。(营销平台申请)
// * @param type $presenttimes 赠送礼品的次数。如果配置的礼包ID对应1个游戏币,那么本字段表示要赠送游戏币的个数。
// * @param type $userip (可选)用户的外网IP
// * @return V3Return
// */
// function ysdks_present($platform, $openid, $openkey, $pf, $appid, $pfkey, $ts, $zoneid, $discountid, $giftid, $presenttimes) {
// $params = array(
// 'openid' => $openid,
// 'openkey' => $openkey,
// 'pf' => $pf,
// 'pfkey' => $pfkey,
// 'appid' => $appid,
// 'zoneid' => $zoneid,
// 'ts' => $ts,
// 'discountid' => $discountid,
// 'giftid' => $giftid,
// 'presenttimes' => $presenttimes,
//// 'userip' => $userip, // (可选) 用户的外网IP
//// 'format' => "json" // (可选)json、jsonp_$func。 默认json。如果
// );
// // 这个需要在cookie里面传一些参数
// $cookie = self::m_makeCookie($platform);
// $cookie['org_loc'] = "/mpay/present_m";
//
// return $this->m_Api('/mpay/present_m', $params, $cookie, 'get');
// }
// /**
// * 取消支付接口
// * @param type $openid
// * @param type $openkey
// * @param type $pf
// * @param type $paytoken
// * @param type $appid
// * @param type $pfkey
// * @param type $ts
// * @param type $amt 扣游戏币数量
// * @param type $billno 预扣流水号
// * @param type $userip (可选)用户的外网ip
// * @param type $accounttype (可选)账户类型,基础货币(common)安全货币(security),不填默认common
// * @return V3Return
// */
// function ysdk_cancel_pay($platform, $openid, $openkey, $pf, $paytoken, $appid, $pfkey, $ts, $zoneid, $amt, $billno) {
// $params = array(
// 'openid' => $openid,
// 'openkey' => $openkey,
// 'pay_token' => $paytoken,
// 'appid' => $appid,
// 'ts' => $ts,
// 'pf' => $pf,
// 'pfkey' => $pfkey,
// 'zoneid' => $zoneid,
// 'amt' => $amt,
// 'billno' => $billno,
//// 'userip' => $userip, // (可选) 用户的外网IP
//// 'accounttype' => $accounttype // (可选)帐户类型ID, 基础货币(common) 安全货币(security), 不填默认common
//// 'format' => "json" // (可选)json、jsonp_$func。 默认json。如果
// );
// // 这个需要在cookie里面传一些参数
// $cookie = self::m_makeCookie($platform);
// $cookie['org_loc'] = "/mpay/cancel_pay_m";
// return $this->m_Api('/mpay/cancel_pay_m', $params, $cookie, 'get');
// }
//
//
/**
* 生成ysdk所需cookie
* @param type $sessionId
* @param type $sessionType
* @param type $org_loc
* @return string
*/
static function ymsdk_makeCookie($sessionId, $sessionType, $org_loc)
{
$cookie = array();
$cookie['session_id'] = $sessionId;
$cookie['session_type'] = $sessionType;
$cookie['org_loc'] = $org_loc;
return $cookie;
}
//
//
//
/**
* ================支付类API=================
* 主要使用场景:应用中需要实现道具购买/寄售逻辑时。
*/
/**
* 购买付费道具[Q点直购]
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $pfkey
* @param type $ts 时间戳
* @param type $itemID 道具id
* @param type $itemPrice 道具单价
* @param type $itemName 道具名称
* @param type $itemDes 道具描述
* @param type $goodsurl 道具图url
* @return type
*/
function pay_buy_goods($openid, $openkey, $pf, $pfkey, $ts, $itemID, #
$itemPrice, $itemName, $itemDes, $goodsurl, $zoneid = 0
)
{
$cee_extend = getenv("CEE_DOMAINNAME") . '*' . getenv("CEE_VERSIONID") . '*' . getenv("CEE_WSNAME");
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'pfkey' => $pfkey,
'ts' => $ts,
'payitem' => $itemID . '*' . $itemPrice . '*1',
'appmode' => "1",
'max_num' => "1",
'goodsmeta' => $itemName . '*' . $itemDes,
'goodsurl' => $goodsurl,
'zoneid' => $zoneid,
'cee_extend' => $cee_extend,
);
// echo json_encode($params);
return $this->sdk->api('/v3/pay/buy_goods', $params, array(), 'post', 'https');
}
/**
* 确认支付
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $ts
* @param type $payitem
* @param type $token
* @param type $billno
* @param type $amt
* @return type
*/
function pay_confirm_delivery($openid, $openkey, $pf, $ts, $payitem, $token, $billno, $amt
)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'ts' => $ts,
'payitem' => $payitem,
'token_id' => $token,
'billno' => $billno,
'version' => "v3",
'zoneid' => "0",
'providetype' => "0",
'provide_errno' => "0",
'provide_errmsg' => "OK",
'amt' => $amt,
'payamt_coins' => "0",
'pubacct_payamt_coins' => "0",
);
return $this->sdk->api('/v3/pay/confirm_delivery', $params, array(), array(), 'post', 'https');
}
//
//
//
//
/**
* ================营销类API=================
* 主要使用场景:支付接入的时候必须要实现黄钻特权体系。
*/
/**
* 获得每日礼包(含新手礼包)(点击每日/新手礼包时,调用本接口获得token)
* 或者开通包月礼包(开通业务或续费业务,用户点击活动入口时,调用此接口获取token)
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $pfkey
* @param type $tokentype
* token的类型。
* 1:表示该token为每日礼包赠送、开通包月送礼包营销活动中的赠送道具/物品的token。
* 2:表示该token为任务买卖市场营销活动中的领取奖励的token。
* @param type $discountid 营销活动的actorID或者任务集市中的“商品ID”
* @param type $ts
* @return type
*/
function pay_gift_get_token($openid, $openkey, $pf, $pfkey, $tokentype, $discountid, $ts, $zoneid = 0
)
{
$cee_extend = getenv("CEE_DOMAINNAME") . '*' . getenv("CEE_VERSIONID") . '*' . getenv("CEE_WSNAME");
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'pfkey' => $pfkey,
'tokentype' => $tokentype,
'discountid' => $discountid,
'ts' => $ts,
'version' => "v3",
'zoneid' => $zoneid,
'cee_extend' => $cee_extend
);
return $this->sdk->api('/v3/pay/get_token', $params, array(), 'post', 'https');
}
//
//
//
/**
* 查询玩家已加入的公会QQ群列表
* @param type $openid
* @param type $openkey
* @param type $pf
* @return type
*/
function is_qqgroupmember($openid, $openkey, $pf)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf
);
return $this->sdk->api('/v3/qqgroup/is_group_member', $params, 'post');
}
/**
* 查询公会QQ群中安装了本应用的成员列表
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $group_openid
* @param type $guildId
* @param type $page >=1
* @return type
*/
function get_app_qqgroupmembers($openid, $openkey, $pf, $group_openid, $guildId, $page = 1
)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'group_openid' => $group_openid,
'union_id' => $guildId,
'page' => $page,
'zone' => 0
);
return $this->sdk->api('/v3/qqgroup/get_app_groupmembers', $params, array(), 'post');
}
/**
* 解绑公会QQ群
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $group_openid
* @param type $guildId
* @return type
*/
function unbind_qqgroup($openid, $openkey, $pf, $group_openid, $guildId
)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'group_openid' => $group_openid,
'union_id' => $guildId
);
return $this->sdk->api('/v3/qqgroup/unbind_qqgroup', $params, array(), 'post');
}
//
//
/**
* ================关系链类API=================
* 主要使用场景:应用中需要用户之间进行互动时。
*/
/**
* 获取安装了应用的平台好友
* @param type $openid
* @param type $openkey
* @param type $pf
* @return type
*/
function relation_get_app_friends($openid, $openkey, $pf)
{
$params = $this->getParams($openid, $openkey, $pf);
return $this->sdk->api('/v3/relation/get_app_friends', $params, array(), 'post');
}
/**
* 验证是否是好友
* @param type $openid
* @param type $openkey
* @param type $pf
* @param type $fopenid
* @return type
*/
function relation_is_friend($openid, $openkey, $pf, $fopenid)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'fopenid' => $fopenid,
);
return $this->sdk->api('/v3/relation/is_friend', $params, array(), 'post');
}
//
//
/**
* ================应用推广类API=================
* 主要使用场景:应用中需要实现新用户/活跃用户增长时。
*/
function spread_verify_invkey($openid, $openkey, $pf, $invkey, $itime, $iopenid)
{
$params = array(
'openid' => $openid,
'openkey' => $openkey,
'pf' => $pf,
'invkey' => $invkey,
'itime' => $itime,
'iopenid' => $iopenid,
);
return $this->sdk->api('/v3/spread/verify_invkey', $params, array(), 'post');
}
//
//
//
}
////