支付宝小程序授权登录(获取用户支付宝 user_id)
准备
1、开通小程序,应用已上线,开通对应的接口权限
2、应用appId、开发者私钥、支付宝公钥
第一步:
1、小程序可以使用 my.getOpenUserInfo 接口获取用户的昵称、头像、性别、所在地区信息
2、调用接口获取授权码(authCode)。通过授权码可进而换取支付宝用户登录态信息等,从而方便地获取支付宝用户身份标识。(my.getAuthCode 才可以换到user_id)
第二步:
通过授权码(authCode),换取 用户支付宝user_id
public function getAliUserId($code){
$app_id='应用APPID';
$privateKey='开发者私钥';
$publicKey='支付宝公钥';
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = $app_id;
$aop->rsaPrivateKey = $privateKey;
$aop->alipayrsaPublicKey=$publicKey;
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset='GBK';
$aop->format='json';
$request = new AlipaySystemOauthTokenRequest ();
$request->setGrantType("authorization_code");
$request->setCode($code);
$result = $aop->execute ( $request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
if(!empty($resultCode)&&$resultCode != 10000){
echo "失败";
} else {
echo "成功";
//return $result->$responseNode->user_id;
}
}
阿里云-alipay.system.oauth.token(换取授权访问令牌)
https://opendocs.alipay.com/apis/api_9/alipay.system.oauth.token#%E5%93%8D%E5%BA%94%E5%8F%82%E6%95%B0