微信公众号支付
应用场景
- 商户网页端在微信内进行支付
支付配置
- 公众号类型须为服务号
- 微信公众号平台,配置登录授权目录,用于获取用户信息,最关键的openid
- 在微信支付平台配置支付目录。登录微信支付【商户平台->产品中心->开发配置】,设置后一般5分钟内生效。
- 微信支付平台配置apiKey(v3支付就配置v3key,v2支付配置v2key)
- 以上配置完成,就可以尝试调用支付了,签名正确的话,就可以调起公众号支付了
遇到问题总结
- 登录授权域名
-
授权流程:
- 调起授权地址-https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#we-chat_redirect
- APPID 要授权的公众号的appid
- REDIRECT_URI 就是需要配置在后台的授权域名下的地址,微信会携带上code(用来换取openid)和state值,跳转到REDIRECT_URI
- SCOPE=snsapi_base,静默授权,不弹出授权页面,直接跳转,只能获取用户openid
- SCOPE=snsapi_userinfo,弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息。
-
授权域名已配置满了,不能新增了
- 在一个已经配置的域名对应项目中增加一个方法做REDIRECT_URI,作为中转站。我用到的方案有2:
- 方案一:REDIRECT_URI 上新增一个参数callback_url,进行urlencode,即&callback_url=urlencode(真实跳转地址),微信跳转REDIRECT_URI后,解析参数code和state、callback_url,携code、state参数直接跳转callback_url
- 方案二:state值为真实跳转地址,微信跳转REDIRECT_URI后,携code直接跳转state地址
-
- 两个公众号,一个订阅号(流量大,入口所在),一个服务号(登录授权、支付等商户逻辑)
- 入口在订阅号,逻辑在服务号,可以
- JS安全域名需不需要配置
- 只是支付的话不需要,因为没配情况下,成功调起了公众号支付
- 如果用到了分享等别的功能,因为用到了微信JS,所以需要配置上项目域名
- apikey该配置v3还是v2:
- 如果新接微信支付,建议使用v3版,当然需要配置v3的apiKey了。v2版也可以继续使用,就需要配置v2的apiKey
- 如果之前同一个商户下已经接入过其他微信支付(H5、APP等),apiKey当然已经配置过了,不考虑迭代升级的话,继续延用即可
- 签名失败问题:
- 打印签名串,使用微信签名校验工具,发现了问题
- 微信jsApi支付要求签名参数要严格大小写,我的问题就是都处理成小写后进行的签名导致签名失败
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!