支付宝小程序Get()版本
最近支付宝小程序上线个人公测,本想试试的,没想到获取用户唯一标识这么麻烦,微信一个Get请求就可以了,支付宝需要连接SDK,验证公私钥,另外支付宝开发工具占用内存很大,打开至少要占用2G内存,很头疼。
先注册一个小程序,附上一些有用的链接
支付宝小程序注册链接
开发工具下载链接
SDK下载链接
支付宝小程序开发文档
RSA密钥生成工具下载地址 注册完成后,下载上面提供的所有软件,在开发中心-小程序应用-选择小程序-开发管理-功能列表(最下方)添加【获取会员基本信息】功能。
使用RSA生成工具生成密钥,之后可使用此工具来验证签名
生成应用私钥和应用公钥后,复制应用公钥,进入【开发中心-小程序应用-选择小程序-设置-开发设置-设置接口加密方式】
前端部分我采用的是静默获取,不会弹出授权框,只需要
my.getAuthCode({ scopes: 'auth_base', success:(res) =>{ //在此处将res.authCode发送到后端 //可以参照https://blog.csdn.net/qq_40413670/article/details/103796680 五、部署类 dispose.js的9. APP启动事件 } })
部分,首先下载SDK,SDK里有很多类,如果只需要获取的话,只需要下面6个类
AopClient.php AopEncrypt.php EncryptParseItem.php EncryptResponseData.php SignData.php request/AlipaySystemOauthTokenRequest.php
按照他的目录结构来看,前五个类属于同一个命名空间,第六个类则在上层命名空间之下。
我把SDK放在了根目录下,列出了前面几个部分类的变更,剩下的和SDK一样,主要是注解,TP框架的自动加载机制就不用手动引入了。
// AopClient.php
// AopEncrypt.php
// EncryptParseItem.php
// EncryptResponseData.php
// SignData.php
// AlipaySystemOauthTokenRequest.php
调用类来获取
$c = new AopClient(); $c->appId = ""; // APPID $c->rsaPrivateKey = ""; // 生成的RSA私钥 $c->alipayrsaPublicKey = ""; // 生成的RSA公钥 $c->signType= "RSA2"; $request= new AlipaySystemOauthTokenRequest(); $request -> setCode($_POST['code']); //前端传来的code $request -> setGrantType("authorization_code"); $response= $c->execute($request); $user_id =$response -> alipay_system_oauth_token_response -> user_id;
至此,获取完成,若有签名验证错误,可以使用上面的RSA生成工具进行调试,另外返回值中还有其他数据,可根据需要使用。