支付宝小程序获取 user_id(openid) ThinkPHP版
时间:2022-07-24
本文章向大家介绍支付宝小程序获取 user_id(openid) ThinkPHP版,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
支付宝小程序获取 user_id(openid) ThinkPHP版
近期支付宝小程序个人公测了,就想着玩一下,没想到就获取用户唯一标识都这么麻烦,微信的openid的话Get请求一下就完事了,支付宝的user_id,需要对接SDK以及公钥私钥验签,而且支付宝的开发工具巨占内存,打开就至少占用2G内存,脑阔疼
- 首先注册一个小程序,附一些用得到的链接 支付宝小程序注册链接 开发工具下载链接 SDK下载地址 支付宝小程序开发文档 RSA 密钥生成工具下载地址
- 注册完成后将上边提供的软件都下载好,在开发中心—小程序应用—选择小程序—开发管理–功能列表(在底部)中添加 [ 获取会员基础信息 ] 功能。
- 使用RSA生成工具生成密钥,并且这个工具以后可以用来验签使用
生成应用私钥和应用公钥后,复制应用公钥,在 [ 开发中心—小程序应用—选择小程序-设置–开发设置–设置接口加密方式 ]
- 前端部分,我是使用的静默获取,不会弹出授权框,我只需user_id即可
my.getAuthCode({
scopes: 'auth_base',
success:(res) =>{
//在此处将res.authCode发送到后端
//可以参照https://blog.csdn.net/qq_40413670/article/details/103796680 五、部署类 dispose.js的9. APP启动事件
}
})
- ThinkPHP部分,首选下载SDK,SDK中有很多很多类,如果只需要获取user_id则只需要下面6个类
AopClient.php
AopEncrypt.php
EncryptParseItem.php
EncryptResponseData.php
SignData.php
request/AlipaySystemOauthTokenRequest.php
依照他的目录结构,那就将前五个类归属于同一个命名空间,第六个类在上层命名空间的request下 我将SDK放在根目录的extend目录下,列出这几个类更改的前几部分,后边与SDK相同,主要是标注namespace,并且由TP框架的自动加载机制,不需要再手动引入
// AopClient.php
<?php
namespace libalipay;
use thinkException;
class AopClient
{
//应用ID
public $appId;
// ..................
}
// AopEncrypt.php
<?php
namespace libalipay;
/**
* 加密工具类
*
* User: jiehua
* Date: 16/3/30
* Time: 下午3:25
*/
/**
* 加密方法
* @param string $str
* @return string
*/
function encrypt($str, $screct_key)
{
// ..................
}
// EncryptParseItem.php
<?php
namespace libalipay;
/**
* TODO 补充说明
*
* User: jiehua
* Date: 16/3/30
* Time: 下午8:55
*/
class EncryptParseItem
{
// ..................
}
// EncryptResponseData.php
<?php
namespace libalipay;
/**
* TODO 补充说明
*
* User: jiehua
* Date: 16/3/30
* Time: 下午8:51
*/
class EncryptResponseData
{
public $realContent;
public $returnContent;
}
// SignData.php
<?php
namespace libalipay;
/**
* Created by PhpStorm.
* User: jiehua
* Date: 15/5/2
* Time: 下午6:21
*/
class SignData
{
public $signSourceData = null;
public $sign = null;
}
// AlipaySystemOauthTokenRequest.php
<?php
namespace libalipayrequest;
/**
* ALIPAY API: alipay.system.oauth.token request
*
* @author auto create
* @since 1.0, 2019-07-03 12:05:01
*/
class AlipaySystemOauthTokenRequest
{
// ........................
}
调用类得到user_id
$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;
至此,获取user_id完成,如果有验签错误的话,可以使用上述RSA生成工具进行调试,此外返回值中还有token等数据,按需取用
- Parcel,零配置开发 React 应用!
- 像 React Native 开发 APP 一样,用wn-cli 开发 weapp (微信小程序)
- 正则表达式快速入门
- JavaScript之<script>标签简介
- 数控机床数控系统选择4大关键要素
- Python快速入门
- Jquer学习之jQuery(function(){})与(function(){})(jQuery)之间的区别
- 服务端常见性能隐患分享
- ExtJs学习笔记(19)_复杂Form示例
- Linux快速入门01-基础概念
- SQL学习之Insert的特殊用法(插入检索出的数据,表之间的数据复制)
- 对php多态的理解
- JavaScript值延迟脚本和异步脚本
- JavaScript之arguments.callee
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android进度条控件progressbar使用方法详解
- Android自定义view利用Xfermode实现动态文字加载动画
- Android自定义控件实现下拉刷新效果
- Android实现文件解压带进度条功能
- Android使用ViewPager实现图片滑动预览效果
- Android 布局中的android:onClick的使用方法总结
- Android 提交或者上传数据时的dialog弹框动画效果
- Android 调用系统应用的方法总结
- Android实现网易严选标签栏滑动效果
- Android socket实现原理详解 服务端和客户端如何搭建
- Android使用ViewFlipper实现图片切换功能
- Android 图片显示与屏幕适配的问题
- Android实现截图和分享功能的代码
- Android 自定义相机及分析源码
- Android实现微博菜单弹出效果