微信小程序 APP 登录 支付的区别

🤖 微信小程序、APP及微信支付中各种凭证的作用与逻辑

微信生态体系使用多种凭证(如code、access_token)来实现身份验证、授权和数据安全访问。这些凭证在调用API时形成一套标准化流程,确保用户隐私和系统安全:

  • Code(临时登录凭证)

    • 由小程序或APP前端通过wx.login()接口生成,有效期约5分钟。
    • 作用:作为一次性凭证,传递给后端以换取用户的openid和session_key,避免直接暴露用户敏感信息。
    • 逻辑:用户点击登录时触发,前端获取code后发送至业务服务器。
  • Access Token(访问令牌)

    • 是全局唯一的后台接口调用凭据,用于代表小程序或APP调用微信API(如获取用户信息、支付接口)。
    • 获取方式:后端使用appid和appsecret向微信服务器请求生成(例如调用getAccessToken接口),需妥善存储且不可泄露给前端。
    • 作用:身份验证和授权,例如微信支付预下单、数据分析等需权限的操作。
  • OpenID(用户唯一标识)

    • 通过后端用code换取,用于标识用户在当前小程序或APP中的唯一身份。
    • 作用:关联业务系统用户数据(如订单记录),同一用户在不同小程序中openid不同。
  • Session Key(会话密钥)

    • 由后端在换取openid时一并获取,用于解密前端加密数据(如用户手机号)。
    • 特点:后端存储,前端不可见;失效条件包括用户重新登录或长时间未使用。
  • UnionID(跨应用统一ID)

    • 当小程序绑定微信开放平台时生成,用于同一用户在多个微信应用(如公众号、APP)中的统一标识。
    • 作用:打通多应用用户体系,需用户授权相关应用。

🔄 整体调用逻辑时序

  1. 登录流程

    • 前端调用wx.login()获取code并传给后端。
    • 后端使用code、appid、appsecret调用微信code2Session接口,换取openid和session_key。
    • 后端根据openid创建或关联用户账号,并生成自定义登录态(如session token)供后续业务使用。
  2. 支付与API调用

    • 支付等敏感操作需后端先获取access_token(通过appid和appsecret)。
    • 调用支付接口时,后端将access_token作为参数传递,确保请求合法性。

️ 安全要点

  • Access token和session key必须由后端维护,前端仅处理code和用户交互。
  • 定期更新access token(微信建议2小时刷新),避免泄露导致未授权访问。

引用链接:
1.accessToken是啥意思 - 蜜瓜文库姬
2.如何实现微信小程序调用api? - 中二少年学编程
3.微信登陆、支付、事件监听等常见小程序接口调用讲解 - 腾讯云
4.服务端 API - 微信公众平台
5.讨论微信小程序的session_key和access_token的作用 - 掘金开发者社区
6.微信小程序登陆/注册的后端逻辑 - CSDN博客
7.微信小程序 接口调用讲解 (AccessToken、小程序码登录) - 腾讯云
8.微信登录的“时间魔法”:双Token机制无感续期背后的安全博弈 - 哔哩哔哩
9.微信外部APP打开微信小程序 - 知乎
10.微信小程序开发实战:AccessToken管理与小程序码生成_微信小程序码生成-CSDN博客 - CSDN博客
11.微信支付的信任逻辑 - 雪球
12.微信小程序开发框架与组件高效应用实践 - 红点云租租赁系统
13.接入流程 - 微信支付
14.微信小程序组件与API高效开发实战 - 红点云租租赁系统
15.微信支付实名信息小程序授权接口能力【监管原因,暂停开放】官方 - 微信开放社区
16.实名验证(公众号) - 微信支付
17.微信授权全链路打通指南 - 空间实验室
18.微信登录、支付及监听事件等常用接口的使用指南 - 知乎 - 知乎用户Lx9qBx
19.微信开放文档 - 微信开放社区
20.微信小程序-详解微信登陆、微信支付、模板消息 - CSDN博客
21.一文读懂小程序支付流程 - 支付宝开放平台
22.微信小程序开发:appid和secret的获取方法 - 腾讯云
23.uni-app支付功能实现-支付宝支付功能-微信支付-小程序支付 - 哔哩哔哩
24.微信、支付宝小程序如何运作?前端与后端揭秘 - 度小视
25.uniapp商城微信小程序,企业实战项目,完整支付流程。 - 哔哩哔哩
26.【2025】微信小程序开发教程,真正适合零基础小白的微信小程序实战课程,从零基础到项目发布全流程,带你一天速通微信小程序,学完即可创建属于自己的小程序! - 哔哩哔哩
27.微信小程序如何开发制作?企业为什么要开发小程序?微笑小程序开发制作攻略! - 分媒互动

以下是微信小程序与原生APP在登录流程和支付环节的核心区别对比,结合微信生态技术规范整理:


📱 登录流程对比

环节 微信小程序 原生APP
1. 获取凭证 调用 wx.login() 直接生成临时登录凭证 code(5分钟有效) 需构造OAuth2.0授权链接跳转(如 snsapi_base静默授权或 snsapi_privateinfo手动授权)
2. 用户授权 前端调用 wx.getUserInfo 触发弹窗授权(需用户主动确认) 授权页面由微信服务器提供,用户同意后返回 code 至回调链接
3. 换取身份标识 后端用 code + appid + secret 请求微信接口,返回 openidsession_key 后端用 code + appid + secret 换取 access_token 和用户 UserId
4. 登录态管理 依赖微信封闭环境自动维护会话,session_key 用于解密数据 需手动维护登录态(如生成自定义Token存储于客户端)

💳 支付流程对比

环节 微信小程序 原生APP
1. 预支付请求 前端调用 wx.requestPayment(),后端需用 access_token 调微信统一下单接口生成支付参数 需集成微信SDK(如Android的 IWXAPI),后端同样需 access_token 生成预支付订单
2. 安全校验 支付签名由后端计算,前端仅传递参数 需处理商户密钥签名,且需防范中间人攻击(如APK反编译风险)
3. 环境依赖 强制在微信客户端内完成支付 需依赖用户手机安装的微信客户端

⚠️ 关键差异总结

  1. 开发复杂度

    • 小程序:流程标准化,无需处理域名校验和跨域。
    • APP:需独立实现OAuth2.0授权跳转、签名校验及多端兼容。
  2. 用户隐私获取

    • 小程序:通过 wx.getUserInfo 直接获取加密数据,需后端用 session_key 解密。
    • APP:用户信息包含在授权后返回的 access_token 中。
  3. 安全性

    • 小程序:封闭环境降低中间人攻击风险,但需保护 session_key
    • APP:需严格保护 appsecret,避免源码泄露导致令牌被盗。

注:两者均需后端维护 access_token(2小时刷新),用于调用微信API(如支付、消息推送)。

如需完整时序图或代码示例,可进一步说明具体场景。

引用链接:
1.生成普通 access_token - 微信开放社区
2.微信小程序获取登录用户信息、openid和access_token_openid和access token-CSDN博客 - CSDN博客
3.微信access_token、appid、appsecret区别 - CSDN博客
4.企业微信小程序与H5应用登录对接流程区别 - 上海天正信息科技有限公司
5.讨论微信小程序的session_key和access_token的作用 - 掘金开发者社区
6.微信登陆、支付、事件监听等常见小程序接口调用讲解 - 腾讯云
7.微信小程序开发:实现微信授权登录技术全攻略 - CSDN博客
8.授权码与Access Token的区别详解 - CSDN博客
9.微信小程序 接口调用讲解 (AccessToken、小程序码登录) - 腾讯云
10.微信登录的“时间魔法”:双Token机制无感续期背后的安全博弈 - 哔哩哔哩
11.微信小程序认证怎么操作 - 数界信使
12.微信小程序认证 - 文狐游港岛
13.小程序认证 - 通讯探索者
14.小程序账号认证流程详解:费用、资料与步骤全解析 - 度小视
15.微信小程序认证全流程详解,快速上手操作步骤 - 萌呀呀
16.微信小程序认证全流程,如何避免支付费用 - 栖舟.
17.生物认证 - 微信开放社区
18.小程序token百科-如何利用小程序获取AccessToken? - HiShop
19.对微信公众号Access_Token的一点心得 - 微信开放社区
20.Web、APP和小程序账户登录机制差异 - 孤竹
21.微信支付实名信息小程序授权接口能力【监管原因,暂停开放】官方 - 微信开放社区
22.彻底理解 Cookie、Session、Token、JWT这些登录授权方法 - 腾讯云

posted on 2025-08-04 19:37  何苦->  阅读(81)  评论(0)    收藏  举报

导航