导语
小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本。现在,云调用已支持微信支付,用户在云开发控制台可直接绑定微信支付商户,在绑定完成后可在云开发中原生接入微信支付。
使用云开发的云调用来实现相应的支付功能后,开发者无需关心证书、签名、微信支付服务器端文档,使用简单,代码较少,只需要调用相应的函数即可。此外,因为云调用基于微信私有协议实现,官方通过服务商提供支付接口对接支持,不依赖第三方模块,免去泄漏证书、支付情况等其他敏感信息的风险。此外,云开发的云调用还支持云函数作为微信支付进行支付和退款的回调地址,不再需要定时轮询,更加高效。
云调用支付支持接口
云调用支付现已支持如下接口
- 统一下单接口
- 查询订单
- 关闭订单
- 下载对账单
- 申请退款
- 查询退款
如何接入
准备工作
- 微信开发者工具 Nightly 版 1.02.2005111 及更新的版本
- 需要已经开通了微信支付,且已绑定了商户号的小程序。
如何开通
在微信开发者工具中,使用绑定的微信小程序账号,打开云开发控制台,在云开发控制台中的 设置 - 全局设置 中添加商户号
添加后,需要在绑定的商户号管理员在微信支付提供的【服务商助手】小程序上确认授权。
如果需要 jsapi 和 api 退款权限,需要前往微信支付商户平台我的授权产品中进行确认授权,完成授权后即可调用微信支付相关接口能力。
支付 Demo 代码
在云函数中,调用 cloudPay.unifiedOrder ,即可生成小程序侧调用支付接口所需请求结果
cloud.cloudPay.unifiedOrder({
"body" : "小秋TIT店-超市",
"outTradeNo" : "${Date.now().toString().slice(3)}",
"spbillCreateIp" : "127.0.0.1",
"subMchId" : "1900009231",
"subAppid" : "wxe5f52902cf4de896",
"totalFee" : 1,
"envId": "test-f0b102",
"functionName": "pay_cb"
})
关键开发流程
- 小程序调用云函数,在云函数中调用统一下单接口,参数中带上接收异步支付结果的云函数名和其所在云环境 ID
- 统一下单接口返回的成功结果对象中有 payment 字段,该字段即是小程序端发起支付的接口(wx.requestPayment)所需的所有信息
- 小程序端拿到云函数结果,调用 wx.requestPayemnt 发起支付
- 支付完成后,在统一下单接口中配置的云函数将收到支付结果通知
支付回调
微信支付云调用在调用时,需要传递 envId 和 functionName 这两个参数,这两个参数将会在微信支付成功后,发送相应的消息通知,来告知开发者用户的支付状态。
相关文档
视频教程
为了帮助你掌握云调用微信支付,这里为你准备了快速上手视频~快去试试吧~
https://www.bilibili.com/video/BV1Tz4y1d7CX
总结
云开发的微信支付云调用能力,可以让更多的开发者安全、快捷的实现支付,让企业的资金更加的安全。
小调研
云调用现在已经支持了微信支付,除了微信支付,你还有什么特别想要的功能么?不妨在下方评论区中留言告诉我们。
期待实现服务商模式下的统一下单还有发生分账请求功能
2小时前
jsapi 和 api 退款权限,需要前往微信支付商户平台我的授权产品中进行确认授权。但是,商户平台目前找不到任何可以确认授权的地方!
普通商户登录平台以后 在“我的产品” 列表中没有 “我的授权产品” 这一项,求解释
这里的微信支付配置可以通过接口去发起添加请求吗
为什么普通商户不支持,只支持服务商子账户
普通商户支持分账比例100%功能
按理说 支付回调,当支付成功回调,告诉开发者支付成功,我的问题是什么方式让开发者知道支付成功? 那在回调函数里我们可以做点什么?修改支付状态、 发个短信?
目前回调函数只是配置在哪里,我没用,当支付成功后的事情,我在小程序端完成
期待实现服务商模式下的统一下单还有发生分账请求功能
请问下 spbillCreateIp 这个机器IP 怎么填?
小程序
为什么我没有找到微信支付配置呢,我明明开通了微信支付