// $appkey = 'W82mDFvqubquxi9P'; $openid = '01B30933D45BC52A869A1C5AD2E2FBED'; $openkey = '38AB0FB09FE3476ECF7D88586A012F65'; // 应用基本信息 //$appid = 100657839; //$appkey = 'b96b85196a04ff2ef08707f43979db15'; // OpenAPI的服务器IP // 最新的API服务器地址请参考wiki文档: http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3 $server_name = '119.147.19.43'; // 用户的OpenID/OpenKey //$openid = 'E098C1E975A2459E534B48FB3224CFB6'; //$openkey = '05219DB6D7C04CA0B3F01A51D32635E3'; // 所要访问的平台, pf的其他取值参考wiki文档: http://wiki.open.qq.com/wiki/API3.0%E6%96%87%E6%A1%A3 $pf = 'qzone'; $sdk = new OpenApiV3($appid, $appkey); $sdk->setServerName($server_name); $ret = get_user_info($sdk, $openid, $openkey, $pf); print_r("===========================\n"); print_r($ret); /** * 获取好友资料 * * @param object $sdk OpenApiV3 Object * @param string $openid openid * @param string $openkey openkey * @param string $pf 平台 * @return array 好友资料数组 */ function get_user_info($sdk, $openid, $openkey, $pf) { $params = array('openid' => $openid, 'openkey' => $openkey, 'pf' => $pf);
/** * 构造函数 * @param string $server_ip * 测试环境为:1.254.254.22 * 正式环境为:openapi.tencentyun.com * @param int $appid 应用的ID * @param string $appkey 应用的密钥 */ function __construct($server_ip, $appid, $appkey) { parent::__construct($appid, $appkey); parent::setServerName($server_ip); }
/** * 申请购买物品 * @param $openid * @param $openkey * @param $pf * @param $pfkey * @param $item * @param $itemnum */ function method_Paytoken($openid, $openkey, $pf, $pfkey, $item, $itemnum, $host) { $item_String = common::getItemInfo($item); if ($item_String == NULL) { return json_encode(array("ret" => 1, "msg" => '出售的物品不存在!')); } $server_index = $GLOBALS['ZONE_ID']; if ($server_index == -1) { return json_encode(array("ret" => 1, "msg" => '购买异常请联系游戏客服!')); } $item_JSON = json_decode($item_String, true); if (isset($item_JSON['id']) && isset($item_JSON['price'])) { $itemID = $item_JSON['id']; $itemname = $item_JSON['name']; $itemprice = $item_JSON['price']; $itemDesc = $item_JSON['name']; $itemURL = "http://app100722626.imgcache.qzoneapp.com/app100722626/1000/store/" . $item_JSON['url'] . ".jpg"; $appkey = $GLOBALS['APPKEY']; $appid = $GLOBALS['APPID']; $ts = time(); $payitem = $itemID . '*' . $itemprice . '*' . $itemnum; $goodsmeta = $itemname . '*' . $itemDesc; $goodsurl = $itemURL; $zoneid = $server_index; $appmode = "2"; //1表示用户不可以修改物品数量,2表示用户可以选择购买物品的数量。 默认为2; $sdk = new OpenApiV3($appid, $appkey); $sdk->setServerName($GLOBALS['SERVER_NAME']); $param = array('appid' => $appid, 'appmode' => $appmode, 'goodsmeta' => $goodsmeta, 'goodsurl' => $goodsurl, 'openid' => $openid, 'openkey' => $openkey, 'payitem' => $payitem, 'pf' => $pf, 'pfkey' => $pfkey, 'ts' => $ts, 'zoneid' => $zoneid); $response = $sdk->api('/v3/pay/buy_goods', $param, 'post', 'https'); if (isset($response['ret'])) { $key_token = ""; if ($response['ret'] == 0) { return json_encode(array("ret" => $response['ret'], "url_params" => $response['url_params'], "token" => $response['token'])); } else { $errormsg = "返回异常"; if (isset($response['msg'])) { $errormsg = $response['msg']; } return json_encode(array("ret" => $response['ret'], "msg" => $errormsg)); } } else { return json_encode(array("ret" => 1, "msg" => '请求异常,请联系客服人员!')); } } else { return json_encode(array("ret" => 1, "msg" => '出售的物品不存在!')); } }
log::init('./log', 'qq_log'); $uri = $_SERVER['REQUEST_URI']; $method = strtoupper($_SERVER['REQUEST_METHOD']); if ("GET" == $method) { $params = $_GET; } else { if ("POST" == $method) { $body = file_get_contents('php://input'); $params = $_POST; } } log::instance()->debug("new con: {$uri} {$body}"); $appid = '1102506911'; $pf_info = $config["tencent"][$appid]; $openApi = new OpenApiV3($appid, $pf_info['AppKey']); $openApi->setServerName('openapi.tencentyun.com'); // 查询余额 $pay_params = array('openid' => $params['openid'], 'openkey' => $params['openkey'], 'pay_token' => $params['pay_token'], 'ts' => time(), 'pf' => $params['pf'], 'zoneid' => $params['zoneid'], 'pfkey' => $params['pfkey']); $pay_cookie = array('session_id' => 'openid', 'session_type' => 'kp_actoken', 'org_loc' => '/mpay/get_balance_m'); $result = $openApi->api($pay_cookie['org_loc'], $pay_params, $pay_cookie, 'GET', 'https'); $result['msg'] = urlencode($result['msg']); $response = array('type' => 1, 'ret' => $result['ret']); if ($result['ret'] !== 0) { log::instance()->error("ret: 查询失败 " . urldecode(json_encode($result))); echo json_encode($response); exit; } else { if ($result['balance'] - $result['gen_balance'] < $params['save_num']) { log::instance()->error("ret: 余额不足 " . urldecode(json_encode($result))); $response['msg'] = "余额不足"; echo json_encode($response);
/** * qq授权 */ protected function qqOauth($accessToken, $qqUid) { require_once __DIR__ . '/oauth/QQAPI/OpenApiV3.php'; $oauth = new OpenApiV3($this->sdkconfig['QQ']['QQAppID'], $this->sdkconfig['QQ']['QQAppKey']); $oauth->setServerName($this->sdkconfig['QQ']['QQServerUrl']); $content = $oauth->api('/user/get_user_info', array('access_token' => $accessToken, 'oauth_comsumer_key' => $this->sdkconfig['QQ']['QQAppID'], 'openid' => $qqUid, 'format' => 'json'), 'get', 'https'); return $content; }