首发:微信小程序支付功能 · 语雀

为保证最佳的阅读体验,建议前往语雀体验[比心]

前置

申请支付宝相关准备内容:小程序 - 微信支付接入指引 - 微信支付商户平台

先看文档

小程序登录流程:小程序登录 | 微信开放文档

登录流程图

微信小程序怎么开发支付功能(微信小程序支付功能)(1)

这个说明一定要好好看清楚!!!

微信小程序怎么开发支付功能(微信小程序支付功能)(2)

说明

  1. 调用 wx.login(Object object) | 微信开放文档 获取 临时登录凭证code ,并回传到开发者服务器。
  2. 调用 auth.code2Session | 微信开放文档 接口,换取 用户唯一标识 openId 、 用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

小程序调起支付API

微信支付商户平台

整套支付流程至此结束,不过还没完结……下面继续

手机支付

微信支付弹框无法唤起?但是debug模式下又是可以唤起…… 重点在上述说明的2点,你可能是这样想的:

  • 前端调用wx.login()获取临时登录凭证code,然后再传回服务端
  • 紧接着前端再调用auth.code2Session接口,换取用户唯一标识OpenID这就完事了,但这实际不算完事,这个过程前端传给服务端的openid其实服务端获取不到,为啥获取不到(目前没得说明)- - 那咋办?
  • 再回去看说明里的第1点的最后一句话,这最后一句话需要和第2点的第一句话整合起来理解:并传回到开发者服务端,必须由服务端调用auth.code2Session接口,然后服务端把openid返回给前端,然后前端再把服务端返回的openid当作入参再给服务端,最后才是唤起支付
  • 整个过程需要服务端起到一个承接作用然后这才算是完事了
FAQ

入坑指南参考

  • 关于微信小程序生产环境体验版获取不到openId的问题(大坑) - 知乎
  • 「链接」

若有收获,就点个赞吧

,