123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879 |
- <?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>
|