热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序如何从0开始进入支付

​小程序中微信支付的能力是随着小程序的发布一并推出的,然而小程序文档里关于微信支付接口只有一个requestPayment函数的描述。
小程序中微信支付的能力是随着小程序的发布一并推出的,然而小程序文档里关于微信支付接口只有一个 requestPayment 函数的描述。

这个 requestPayment 函数确实是小程序前端唯一需要调用的函数,但是微信支付的成功接入实际远远不止这一个函数。对于没有接入过微信支付的开发者,会觉得一头雾水,完全没法下手。

本文阐述如何从零开始接入小程序支付,尤其适合没有微信支付接入经验的开发者。

1. 申请微信支付

小程序认证以后,可以在小程序后台,微信支付菜单栏,申请微信支付。

微信小程序如何从0开始进入支付

填写企业信息和对公账户,微信支付会打一笔随机金额到对公账户,输入金额完成验证后,在线签署迁移,即完成了微信支付的申请流程。

微信支付申请完,会发送微信支付商户号,商户平台用户名密码等信息到注册者邮箱。

2. 准备工作

2.1 配置小程序密钥

微信小程序如何从0开始进入支付

在小程序后台设置页,点击生成,管理员验证二维码后,会随机生成 AppSecret。请妥善保管好 Appsecret,不要明文存储于服务器,AppSecret 用于和微信服务器交互。比如获取用户的 openid 接口就需要用到。

2.2 设置密钥和下载证书

用申请微信支付获得的用户名和密码,登录商户平台 (pay.weixin.qq.com),在账户中心,API 安全中下载证书和设置密钥。

密钥是 32 位,设置以后需要妥善保管,因为无法查看密钥,所有微信支付相关的接口都会使用这个密钥加密。

2.3 配置 Https 服务器

小程序的前端是使用微信提供的框架开发,但是后台依然是开发者自己的服务器。小程序发起的是 https 请求,意味着小程序开发者必须配置 https 服务器。

配置 https 服务器之前,先要获取证书,证书可以向相关机构购买,腾讯云目前可以向用户提供免费的证书。

证书安装指引在这里查看:

https://www.qcloud.com/doc/product/400/4143

3. 微信支付流程

微信支付有多种支付方式,包括刷卡支付,公众号支付,扫码支付,APP 支付,在这里微信支付的所有接口:https://pay.weixin.qq.com/wiki/doc/api/index.html

小程序是在微信里调起支付的,其实是公众号支付。关于公众号支付的详细文档可在这里查看:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1

所有公众号支付相关的链接都可以在此链接找到,开发者首先需要大概了解这些接口。

小程序公众号支付的主要流程如下(本图只考虑了正常流程,异常流程参考公众号支付文档):


微信小程序如何从0开始进入支付

3.1 关于 openid

上述流程中请求 openid,用的是小程序最新 api 中的接口,开发者可以查看小程序的登录接口。

开发者从第三方服务器获得的 openid,在统一下单的接口里面需要使用到。

3.2 关于小程序调起微信支付

上述流程中的小程序调起微信支付,用的是小程序微信支付接口 wx.requestPayment,该接口的详细描述可以查看小程序的微信支付 API。

这个接口中的 package 和 timeStamp 参数是从开发者的第三方服务器返回的,package 是第三方服务器从统一下单接口回复中获得。

接口中其他的参数,appId,noceStr,signType 以及 paySign 则由小程序这边存储或者计算而得。

其中 paySign 是签名,签名算法文档在这里:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3&t=20161107

整个公众号支付的主要流程基本都是在第三方服务器上实现,开发者需要熟读公众号支付文档,了解消息交互流程以及每个接口。

这里并没有描述正常微信支付必不可少的一些功能:异常处理,查询订单,发起退款,下载对账单等等。

4. 小程序与 JSSDK 微信支付比较

JSSDK 的微信支付接口是公众号里用 JS 调起公众号支付的方法,具体可以参考公众平台的文档。

可以看到,小程序和 JSSDK 的微信支付非常类似,这里比较一下 2 者的区别:

微信小程序如何从0开始进入支付

以上就是 JeffChen(微信公众号:移动开发技术) 关于小程序接入微信支付的分享,希望对你有所帮助。

更多微信小程序如何从0开始进入支付相关文章请关注PHP中文网!

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 程序员如何优雅应对35岁职业转型?这里有深度解析
    本文探讨了程序员在职业生涯中如何通过不断学习和技能提升,优雅地应对35岁左右的职业转型挑战。我们将深入分析当前热门技术趋势,并提供实用的学习路径。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
author-avatar
Yao2524_420
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有