openid

微信小程序开发个人心得与总结(基础)

耗尽温柔 提交于 2020-05-08 16:57:02
本次的微信小程序开发简单来说还算顺利,因为毕竟后台有经验老道的大牛加持,因为项目组的其他成员以前也都没有接触过微信小程序开发,或多或少有过了解,但是没有真正的上手体验过,那就暂时让我这个菜鸟给个位讲讲我这次开发的心得与经验,废话不多说,进入正题。 首先,开发微信小程序需要使用一个编辑器,也就是微信开发者工具: 下面给大家讲一下几个重要目录的用途: 这个app.js就是全局的js文件,了解vue的话,可以理解为他是index.js,有着相同的功能,这里面可以放一些全局的属性。 app.json这个文件比较有意思,他是放全局的配置的,比如小程序的头部以及底部,都可以用app.json配置,但是也并不是唯一配置的地方,当你添加一个页面的时候,每个页面都有一个json文件。这里面我们的tabbar就实在app.json配置的。 app.wxss是全局的样式文件,project.config.json是小程序的配置文件。 pages目录是这个小程序的总目录,images和libs可以按照个人喜好放文件。 这四个文件也没有什么好介绍的了。 下面给大家介绍一下小程序登录以及请求接口拿数据渲染逻辑: 首先,在请求我们的登录接口之前,我们需要通过wx.login()获取code,通过wx.request()请求后台接口将code传给后台

Using KeyCloak(OpenID Connect) with Apache SuperSet

被刻印的时光 ゝ 提交于 2020-05-08 15:40:43
问题 I started with Using OpenID/Keycloak with Superset and did everything as explained. However, it is an old post, and not everything worked. I'm also trying to implement a custom security manager by installing it as a FAB add-on, so as to implement it in my application without having to edit the existing superset code. I'm running KeyCloak 4.8.1.Final and Apache SuperSet v 0.28.1 As explained in the post, SuperSet does not play nicely with KeyCloak out of the box because it uses OpenID 2.0 and

微信小程序--保姆级别讲解小程序支付(内含代码,复制即用)

烂漫一生 提交于 2020-05-08 09:49:50
文章目录 一、前言 二、相关链接与基本介绍 1.签名 2.Openid 3.商户证书 4.APPID 4.微信支付商户号:mch_id 5.API密钥:key 6.Appsecret 三、前期准备 1.小程序中申请微信支付 2.官方规范 2.1接口规范 2.2 参数规范 3.密钥key设置 4.工具类准备 四、开发流程 五、登录API获取到Openid() Object object object.success 回调函数 参数 六、统一下单接口---生成预支付订单 6.1请求参数 6.2获取签名 6.3统一下单接口 七、小程序调起支付API 7.1请求参数 7.2 小程序支付实体类 7.3 签名处理 7.4 请求结果 八、支付回调接口 一、前言 现在因为微信的 流量大 、使用的人多,基于微信小程序 开发成本低 ,且开发 不需要进行区分安卓和IOS两端 分别开发。所以小程序上诞生了越来越多的电商平台。 但小程序支付是专门被定义使用在小程序中的支付产品。目前在 小程序中能且只能使用小程序支付的方式来唤起微信支付 。所以我们作为程序员就需要去掌握学习微信小程序的相关知识。 二、相关链接与基本介绍 微信官方文档链接 1.签名 商户后台和微信支付后台根据相同的密钥和算法生成一个结果,用于校验双方身份合法性。签名的算法由微信支付制定并公开,常用的签名方式有:MD5、SHA1、SHA256

【原创】微信小程序支付java后台案例(公众号支付同适用)(签名错误问题)

廉价感情. 提交于 2020-05-07 19:32:03
前言 1.微信小程序支付官方接口文档:[ 点击查看微信开放平台api开发文档 ] 2. 遇到的坑 :预支付统一下单签名结果返回[ 签名错误 ]失败,建议用官方[签名验证工具]检查签名是否存在问题. 3. 遇到的坑 :签名格式正确但统一下单接口依旧返回 签名错误,解决方法 =>去微信[ 商户平台 ]重新生成商户支付api密钥(文中提到的appKey),使用新的密钥进行调用接口。一般第一次生成的密钥是不可用的。 4.涉及的数据库表结构在最后面贴上 1.1 小程序支付说明 1.2 小程序轻量级支付模板(引用码云作者 egan )引入jar包 < dependency > < groupId > com.egzosn </ groupId > < artifactId > pay-java-common </ artifactId > < version > 2.12.1 </ version > </ dependency > < dependency > < groupId > com.egzosn </ groupId > < artifactId > pay-java-wx </ artifactId > < version > 2.12.1 </ version > </ dependency > 1. 3 初始化微信支付配置存储类 private WxPayService

微信小程序登录授权并获取手机号

只谈情不闲聊 提交于 2020-05-06 09:09:53
一、请求发送 携带 code 到后台换取 openid var that = this ; wx.login({ success(res) { console.log(res); var code = res.code wx.request({ url: 'http://localhost/index/users/code2seesion' , method: "post" , data: { code }, success: function (res) { console.log(res.data.openid); that.setData(res.data); } }) } }) 解析: 1、第一步打印出 wx.login 成功回调后的res console.log(res),下面是打印出的内容 2、提取 code var code = res.code; 3、发送 post 请求到后台换取 openid 携带参数 data:{code} 打印成功回调console.log(res),下面是打印出的部分内容: 可以清楚的看到session_key、openid、errMsg;这些参数在接下来的操作中有着重要的作用; 4、保存data内容 里面包含 openid 和 session_key :that.setData(res.data); image.png 二

Azure AD(一)入门认识

a 夏天 提交于 2020-05-06 09:03:45
一,引言(吹水)   距离上一次介绍Azure Functions的相关博文以及过期快一个月了,本来早早都想好已经规划好的Azure的相关的学习的路线,无奈还是由于自己文笔不好以及自身太懒,导致博文没有更新😂。好了,废话也不多说,开始今天的分享!!! 二,正文 什么是Microsoft 表示平台?   今天分享的主题叫 “Azure AD”,全称为 “Azure Active Directory” Azure 活动目录,是不是听起来很拗口,微软官方文档解释到,其实在Azure上的提供的云端的身份表示和资源访问服务,可以帮助员工登录以及访问以下位置的资源: 外部资源,例如 Microsoft Office 365、Azure 门户以及成千上万的其他 SaaS 应用程序。 内部资源,例如公司网络和 Intranet 上的应用,以及由自己的组织开发的任何云应用。   对应开发人员来讲,按照这些理解,我们大概了解到 Azure AD 其实是微软基于云的表示和授权访问管理服务,它可以帮助我们在Azure中登录和访问资源。我们可以通过Azure的标识平台生成应用程序,采用微软表示登录,以及获取令牌来调用受保护的API资源,这里是不是 有点和Identity Server 4 类似,没错,这一切功能也是基于包含Oauth 2.0和Open ID Connect的身份验证服务。😎😎😎😎😎😎

微信小程序登录授权并获取手机号

房东的猫 提交于 2020-05-06 07:56:48
一、请求发送 携带 code 到后台换取 openid var that = this ; wx.login({ success(res) { console.log(res); var code = res.code wx.request({ url: 'http://localhost/index/users/code2seesion' , method: "post" , data: { code }, success: function (res) { console.log(res.data.openid); that.setData(res.data); } }) } }) 解析: 1、第一步打印出 wx.login 成功回调后的res console.log(res),下面是打印出的内容 2、提取 code var code = res.code; 3、发送 post 请求到后台换取 openid 携带参数 data:{code} 打印成功回调console.log(res),下面是打印出的部分内容: 可以清楚的看到session_key、openid、errMsg;这些参数在接下来的操作中有着重要的作用; 4、保存data内容 里面包含 openid 和 session_key :that.setData(res.data); image.png 二

PHP中封装Redis购物车功能

做~自己de王妃 提交于 2020-05-05 15:37:00
直接看代码: <?php // 服务层 namespace Common\Service ; use Vendor\Func\Red ; class CartService extends CommonService { protected $redis ; protected $pre_key ; public function __construct () { parent :: __construct (); $this -> redis = Red :: create (); $this -> pre_key = C ( 'USER.CART' ) . C ( 'APPID' ) . ':' ; } /** * 加入购物车,移除购物车,但是不会删除 * @param $openid * @param $sku_id * @param int $count * @return mixed */ public function add ( $openid , $sku_id , $count = 1 ) { $key = $this -> pre_key . $openid ; // 可增可减 return $this -> redis -> hIncrBy ( $key , $sku_id , $count ); } /** * 批量添加 * @param $openid *

小程序&app 注册登录、绑定

◇◆丶佛笑我妖孽 提交于 2020-05-05 12:51:41
前段时间开发中的一款产品,有小程序和app:小程序直接微信登录,app使用手机号+验证码注册,手机号+验证码/密码登录。 用户使用其中一套账号密码即可正常使用,不强制要求完善另一套账号。为避免同一用户小程序是一个账号,app是另一个账号,就有了两套账号体系相互打通(绑定)的需求。 下边梳理下注册登录及相互绑定的流程。 小程序注册登录 从微信进入小程序,如果数据库中没有这个微信用户,即注册为新用户,然后自动登录。如果已经有这个用户了,也自动登录。 这里为什么是UnionID而不是openid。 openid同一用户同一应用唯一,unionid同一用户同一开放平台所有应用唯一。 如果使用openid,当有多个应用,比如多个小程序,或者小程序和app的微信授权登录,同一个微信用户会有多个openid,如何将其对应到同一个账户就很复杂了。 App注册登录 App注册只设计了手机号+验证码的方式。如果没有这个手机号用户,注册为新用户并登录。如果已经有这个手机号用户,自动登录。 比最基本的注册登录多了一个账号是否禁用的判断。 起初是没有这一层判断的,发放新用户红包(可无条件提现)的时候出现了问题:已经被禁止登陆的手机号,又重新注册了新账号。 所以,列入黑名单的账号,不仅要在登陆环节堵住,在注册环节也得堵住。 微信小程序里,绑定/换绑手机号 换绑过程,需要原绑定手机号

nw core index.js

牧云@^-^@ 提交于 2020-05-02 13:20:32
nw core index.js wechat_devtools_1.02.1904090/Contents/Resources/package.nw/js/core/index.js const path = require('path' ) const tools = require('../js/84b183688a46c9e2626d3e6f83365e13.js' ) const locales = require('../js/common/locales/index.js' ) const isMac = (process.platform === 'darwin' ) const query = tools.getQuery(location.search) // 记录工具开始运行的时间 global.beginTime = Date.now() function hack() { // to prevent drag image or html document.body.addEventListener('dragover', function (e) { e.preventDefault() e.stopPropagation() }, false ) document.body.addEventListener( 'drop', function (e) {