微信小程序API_登录API_微信支付API_分享API

#登录API

        >微信小程序的登录简介 

                可以简单理解为以下几个步骤:

                        >小程序里使用wx.login方法获取登录凭证code值

                        >拿到code值后再加上AppID、secret、grant_type授权类型这3个参 数发送到自己后台开发服务器,在后台服务器上去请求 https://api.weixin.qq.com/sns/jscode2session这个路径,同时上传这3个参数,来获取唯一标识(openId)和会话密钥(session_key)

                        >拿到唯一标识(openId)和会话密钥(session_key)后在自己后台开发服务器上生成自己的sessionId

                        >微信小程序可以将服务器生成的sessionId信息保存到本地缓存信息 Storage

                         >后续用户进入微信小程序,先从Storage获得sessionId,将这个 sessionId传输到服务器上进行查询来维护登录状态

        >wx.login(OBJECT)获取登录凭证code

                >小程序使用wx.login接口来获取登录凭证(code),进而获取用户登录状态信息,包括用户的唯一标识(openId)和本次登 录的会话密钥(session_key)

                >用户数据的加解密通信需要依赖session_key完成

属性类型必填说明
timeoutstring超时时间,单位ms
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

        示例代码: 

App({
    onLaunch:function(){
        wx.login({
            success:function(res){
                var code=res.code;
                if(code){
                    console.log('获取用户登录凭证:'+code);
                }
                else{
                    console.log('获取用户登录失败');
                }
            }
        })
    }
})

        >用户登录凭证code发往开发者服务器换取唯一标识(opened) 和会话密码(session_key)

                >开发者服务器需要提供一个后台接口,来接收用户登录凭证 code

        示例代码:

App({
    onLaunch:function(){
        wx.login({
            success:function(res){
                var code=res.code;
                if(code){
                    console.log('获取用户登录凭证:'+code);
                    wx.request({
                        url:'https://www.my-domain.com/wx/onlogin',
                        data:{ code:code}
                    })
                }
                else{
                    console.log('获取用户登录失败');
                }
            }
        })
    }
})

        >开发者服务器获取唯一标识(opened)和会话密钥 (session_key)

                >开发者服务器接收到用户登录凭证code值后 ,加上小程序唯一标识appid、小程序secret 、小程序的授权类型grant_type这3个参数去 请求微信服务接口https://api.weixin.qq.com/sns/jscode2 session,来获取session_key和唯一标识 openid

属性必填说明
appid小程序唯一标识
secret小程序的App secret
js_code登录时获取的code
grant_type填写为authorization_code

                >该接口返回参数为openid和session_key

                >后台服务器有多种语言实现方式来请求微信服务器代码实现,如java、php或Node.js

        >开发者服务器生成自己的sessionId

                >开发者服务器获取到openid和session_key后,需要生成自己的sessionid  

                >规则可以自己定,可以采用拼接成字符串或拼接成字符串后再MD5加密等

                >生成的sessionid需要在开发者服务器中保存起来

                >sessionid保存到缓存Memcached、Redis、内存都可以

        >小程序客户端保存sessionId

                >小程序客户端没有类似于浏览器客户端的cookie或者 session机制,但是可以利用小程序的storage缓存机制来保存sessionid

                >在后续调用需要登录后才有权限访问的后台服务时,可以将 保存在storage中的sessionid取出并携带在请求中,传递到后台

                >后台代码获取到sessionid后,从缓存Redis或内存中查找是 否有该sessionid存在,若有,则确认该session是有效的, 继续执行后续代码,否则要进行错误处理

        >wx.checkSession(OBJECT)检查登录状态是否过期

                >使用该接口来检查登录状态是否过期

                >如过期,则需要重新登录

属性类型必填说明
timeoutstring超时时间,单位ms
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

        示例代码:

wx.checkSession({
    success () {
    //session_key 未过期,并且在本生命周期一直有效
    },
    fail () {
    // session_key 已经失效,需要重新执行登录流程
        wx.login() //重新登录
    }
})

        >wx.getUserInfo(OBJECT)获取用户信息

                >该接口用来获取用户信息

                >在获取用户信息之前,需要调用wx.login接口

                >用户只有在登录状态下才能获取用户相关信息

属性类型必填说明
withCrede ntialsboolean是否带上登录态信息。当 withCredentials 为 true 时,要求此前有调 用过 wx.login 且登录态尚未过期,此时返回的数据会包含 encryptedData, iv 等敏感信息;当 withCredentials 为 false 时,不 要求有登录态,返回的数据不包含 encryptedData, iv 等敏感信息。
langstring显示用户信息的语言
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

        示例代码:

Page({
    onLoad:function(){
        wx.getUserInfo({
            success: function (res) {
                var userInfo = res.userInfo
                var nickName = userInfo.nickName
                var avatarUrl = userInfo.avatarUrl
                var gender = userInfo.gender //性别 0:未知、1:男、2:女
                var province = userInfo.province
                var city = userInfo.city
                var country = userInfo.country
            }
        })
    }
})

#微信支付API

        >微信小程序支付介绍

                >微信支付主要经过:

                        >小程序内调用登录接口

                        >商户server调用支付统一下单

                                >API:https://pay.weixin.qq.com/wiki/doc/api/wxa /wxa_api.php?chapter=9_1

                        >商户server调用再次签名

                                >API:https://pay.weixin.qq.com/wiki/doc/api/wxa /wxa.api.php?chapter=7_7

                        >商户server接收支付通知

                                >API:https://pay.weixin.qq.com/wiki/doc/api/wxa /wxa.api.php?chapter=9_7

                        >商户server查询支付结果

                                >API:https://pay.weixin.qq.com/wiki/doc/api/wxa /wxa_api.php?chapter=9_2

                >微信支付接口:wx.requestPayment(OBJECT)

属性类型必填说明
timeStampstring时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数, 即当前的时间
nonceStrstring随机字符串,长度为32个字符以下
packagestring统一下单接口返回的 prepay_id 参数值,提交格式如: prepay_id=***
signTypestring签名算法
paySignstring签名,具体签名方案参见pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

        示例代码:

wx.requestPayment({
    timeStamp: '',
    nonceStr: '',
    package: '',
    signType: 'MD5',
    paySign: '',
    success (res) { },
    fail (res) { }
})

        >微信小程序支付实现步骤

                >微信小程序调用wx.login方法,获取用户登录凭证code

                >微信小程序将用户登录凭证code传输给自己的开发者后台服务器

                >开发者后台服务器根据用户登录凭证code向微信服务器请求获取 唯一标识(openid)

                >开发者后台服务器获取到唯一标识(opened)后,开发者后台服务 器调用统一下单支付接口,来获取预支付交易会话标识 (prepay_id)

                >开发者后台服务器调用签名,并返回支付需要使用的参数

                >微信小程序调用wx.requestPayment方法发起微信支付

                >开发者后台服务器接收微信服务器的通知并处理微信服务器返回 的结果

        #分享API

                >微信小程序可以在Page中定义onShareAppMessage函数, 设置该页面的分享信息

                >只有定义了此事件处理函数,右上角菜单才会显示“分享” 按钮

                >用户单击“分享”按钮的时候会调用

                >此事件需要return一个Object,用于自定义分享内容

属性类型必填说明
timeoutstring超时时间,单位ms
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

        示例代码:

Page({
    onShareAppMessage:function(){
        return {
            title:'自定义分享标题',
            desc:'自定义分享描述',
            path:'/page/user?id=123'
        }
    }
})

        效果截图:

...持续学习完善中。 


#学无止境#

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南枫知我意~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值