php sdk支付宝登录接口 教程
浏览量:3269
先了解获取到的支付宝相关信息:
// Array( // [alipay_user_info_share_response] => Array( // [code] => 10000 // [msg] => Success // [avatar] => https://tfs.alipayobjects.com/images/partner/T19XXXX // [city] => 临沂市 // [gender] => m // [is_certified] => T // [is_student_certified] => F // [nick_name] => 小皇 // [province] => 山东省 // [user_id] => 20772 // [user_status] => T // [user_type] => 2 // ) // [sign] => eNu2uMpkfv7n68w6XzPHOQ== // )
直接上代码
首先require sdk包,
拼接请求授权的URL,
注意:$aop->execute携带参数执行请求,有的是需要携带access_token参数的
header("Content-type: text/html; charset=utf-8"); require_once(SELF.'../../plugins/alipay-sdk-PHP-20171201160100/AopSdk.php');//引入sdk $return_url = urlencode("http://".$_SERVER['HTTP_HOST']."/oauth/alipay/index"); $auth_code = $this->input->get('auth_code');//存放auth_code if(empty($auth_code)){ //state参数用于防止CSRF攻击,成功授权后回调时会原样带回 $alipay_state = md5(uniqid(rand(), TRUE)); //拼接请求授权的URL $url = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=2017123001381011&scope=auth_user&redirect_uri=".$return_url."&state=".$alipay_state; echo("<script> top.location.href='" . $url . "'</script>"); } $aop = new \AopClient(); $aop->appId = '2011381011'; $aop->rsaPrivateKey = 'MIIEowIBNe4w9F5UQHqGCkVa';//我简写了,应用的私钥 $aop->alipayrsaPublicKey='MIIBIjAJelFwIDAQAB';//我简写了,支付宝的公钥 $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->apiVersion = '1.0'; $aop->postCharset='utf-8'; $aop->format='json'; $aop->signType = 'RSA2'; //第二步使用auth_code换取接口access_token及用户userId $request = new \AlipaySystemOauthTokenRequest(); //请求的必传信息 $request->setGrantType("authorization_code"); $request->setCode($auth_code); $result = $aop->execute($request); $result = $this->commonlib->object_array($result);//转换object格式到数组,我自己的函数 $token = $result['alipay_system_oauth_token_response']['access_token']; $UserInfo = new \AlipayUserInfoShareRequest(); $UserInfo = $aop->execute($UserInfo,$token); $UserInfo = $this->commonlib->object_array($UserInfo);//转换object格式到数组,我自己的函数
上面的这个$UserInfo, 就可以得到开头的那个数组数据了。
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。