|
@@ -1,879 +0,0 @@
|
|
-<?php
|
|
|
|
-
|
|
|
|
-include_once dirname(__FILE__) . '/OpenAPI/OpenApiV3.php';
|
|
|
|
-
|
|
|
|
-namespace loyalsoft;
|
|
|
|
-
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="CV3Util">
|
|
|
|
-/**
|
|
|
|
- * Description of CV3Util
|
|
|
|
- * V3 API工具类[APHP三大操作单元之一]
|
|
|
|
- * @author jgao
|
|
|
|
- */
|
|
|
|
-class CV3Util
|
|
|
|
-{
|
|
|
|
-
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="常量/变量定义">
|
|
|
|
- // ----以下为通用常量定义----
|
|
|
|
- /**
|
|
|
|
- * qq空间
|
|
|
|
- */
|
|
|
|
- const qzone = 'qzone';
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 朋友网
|
|
|
|
- */
|
|
|
|
- const pengyou = 'pengyou';
|
|
|
|
-
|
|
|
|
- //put your code here
|
|
|
|
- /**
|
|
|
|
- * V3SDK
|
|
|
|
- * @var OpenApiV3
|
|
|
|
- */
|
|
|
|
- var $sdk = 0;
|
|
|
|
- var $appkey;
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="==========辅助方法===========">
|
|
|
|
- /**
|
|
|
|
- * 初始化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;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="========= 调用V3API =========">
|
|
|
|
- // ----这里补充具体的后台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);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="==========用户信息类API=========">
|
|
|
|
- /**
|
|
|
|
- * ==============用户信息类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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="==========敏感词过滤API=========">
|
|
|
|
- /**
|
|
|
|
- * 敏感词过滤
|
|
|
|
- * @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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="---------- Msdk 移动端支付 -----------">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 移动支付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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //</editor-fold>
|
|
|
|
- //
|
|
|
|
-
|
|
|
|
- //<editor-fold defaultstate="collapsed" desc="---------- YSDK 移动端支付 -----------">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 移动支付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
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="未启用">
|
|
|
|
-// /**
|
|
|
|
-// * 赠送游戏币接口,应用在后台自助申请赠送游戏币的营销活动,获取到活动号和礼包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');
|
|
|
|
-// }
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
- /**
|
|
|
|
- * 生成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;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //</editor-fold>
|
|
|
|
-//
|
|
|
|
-//<editor-fold desc="================支付类API=================">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * ================支付类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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="================营销类API=================">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * ================营销类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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="================公会Q群=====================">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 查询玩家已加入的公会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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="================关系链类API=================">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * ================关系链类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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//<editor-fold defaultstate="collapsed" desc="================应用推广类API===============">
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * ================应用推广类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');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-//</editor-fold>
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-////</editor-fold>
|
|
|