1. 登录支付宝开放平台(蚂蚁金服开放平台)。https://open.alipay.com/
2. 进入开发者中心,创建应用,并申请应用上线。
3. 签约-获取会员信息功能。
4. 设置 授权回调路径 和 接口加签方式(选择RSA2(SHA256)密钥) 密钥 生成 需要下载支付宝提供的生成工具。 下载工具链接 : https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.iZGFov&treeId=291&articleId=105971&docType=1 选择2048,生成后绑定到支付宝开发中心。
5. 下载支付宝SDK https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1
6. 获取code。
<?php
namespace Admin\Controller;
use Think\Controller;
class AliclubController extends Controller {
public function index(){
$appid ='生活号应用的appid';
$url='**************';
$redirect_uri = urlencode($url);
//静默状态scope就用auth_base 用户感知就用 auth_user
$url ='https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id='.$appid.'&scope=auth_base&redirect_uri='.$redirect_uri;
header("Location:".$url);
}
//支付宝跳转
public function receive(){
header("Content-type:text/html;charset=utf-8");
//引入的SDK
vendor('alipayclub.AopSdk');
vendor('alipayclub.aop.AopClient');
vendor('alipayclub.aop.request.AlipaySystemOauthTokenRequest');
vendor('alipayclub.aop.request.AlipayUserUserinfoShareRequest');
$code = $_GET['auth_code'];
//APPID
$appid = $_GET['appid'];
//私钥 文件名(rsa_private_key.pem)
$rsaPrivateKey = "你的应用私钥";
//公钥 文件名 (rsa_public_key.pem)
$alipayrsaPublicKey = "你的支付宝公钥";
//初始化
$aop = new \AopClient();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = $appid;
$aop->rsaPrivateKey = $rsaPrivateKey;
$aop->alipayrsaPublicKey = $alipayrsaPublicKey;
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset='UTF-8';
$aop->format='json';
//获取access_token
$request = new \AlipaySystemOauthTokenRequest ();
$request->setGrantType("authorization_code");
$request->setCode($code);//这里传入 code
$result = $aop->execute($request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
var_dump($result);exit;//静默状态下,到此就可以结束了
$access_token = $result->$responseNode->access_token;
//获取用户信息
$request_a = new \AlipayUserInfoShareRequest();
$result_a = $aop->execute ($request_a,$access_token); //这里传入获取的access_token
$responseNode_a = str_replace(".", "_", $request_a->getApiMethodName()) . "_response";
var_dump($result_a);
$user_id = $result_a->$responseNode_a->user_id; //用户唯一id
//var_dump($user_id);
$headimgurl = $result_a->$responseNode_a->avatar; //用户头像
$nick_name = $result_a->$responseNode_a->nick_name; //用户昵称
}
}