开启左侧

[软件工程] 微信小程序如何从 0 开始接入支付

[复制链接]
发表于 2016-11-16 09:16:47 | 显示全部楼层 |阅读模式
作者 | JeffChen
来源 | 移动开发技术

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

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

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

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


db6fa4f62f2c67c98e5b3a68cda3e80f.jpg

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

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

2. 准备工作

2.1  配置小程序密钥


a29e3a7bd6ac7cbc7a25dff07543282b.jpg

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

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

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

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

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

证书安装指引,可在浏览器中打开链接查看:
[url=]https://www.qcloud.com/doc/product/400/4143[/url]

3. 微信支付流程
微信支付有多种支付方式,包括刷卡支付,公众号支付,扫码支付,APP 支付,请用浏览器打开链接查看微信支付的所有接口:
[url=]https://pay.weixin.qq.com/wiki/doc/api/index.html[/url]

小程序是在微信里调起支付的,其实是公众号支付。关于公众号支付的详细文档可用浏览器打开链接查看:
[url=]https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1[/url]

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

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

1b6985c49044e0ab3e383787c9b5f07d.png

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

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

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

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

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

其中 paySign 是签名,签名算法文档在这里:
[url=]https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3&t=20161107[/url]

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

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

4.  小程序与 JSSDK 微信支付比较
JSSDK 的微信支付接口是公众号里用 JS 调起公众号支付的方法,具体可以参考公众平台的文档。

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


小程序
JSSDK
HTTPS服务器
需要
不需要
支付目录
不需要
需要
授权域名
不需要
需要
调起页面代码
微信服务器
第三方服务器
回调函数
有 complete 函数
没有 complete函数
推荐关注

以上就是 JeffChen 关于小程序接入微信支付的分享,希望对你有所帮助。

给小程序接入微信支付后,你也可以同步接入 Ping++ 服务端 SDK, 无论你的交易是在微信小程序、APP、WAP 或是 PC 网页,都可以在 Ping++ 提供的管理后台进行全局的监控与管理。
平度网:www.pingdu.co 平度论坛:bbs.pingdu.co
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

 
QQ在线咨询
售前咨询热线
0532-88371356
售后服务微信
pingduwangzhan
快速回复 返回顶部 返回列表