最近业余时间都在迭代一个未发布的中度小游戏,一直没时间更新知识点,今天看到有一位女同事孜孜不倦写了好多文章,顿时觉得自己太放纵了,还是要坚持多写多学才行,于是就研究了一下云开发的支付玩法,发现还挺简单的,好方便,以下记录一下这个功能的实现。
目的:
实现商户在小程序中收钱并记录的功能,视频演示如下:
载体:
云开发 小程序
原理:
简而言之即通过一个云函数获取小程序前端支付方法requestPayment的参数,然后通过另一个云函数接受支付成功的回调。
步骤:
第一步. 首先打开pay.weixin.qq.com(没有商户号的话请注册一个,个人没法玩),然后点右上角“产品中心”,找左下角“AppID账号管理”,在里面绑定一个小程序。
第二步. 打开最新版“微信开发者工具”,新建一个小程序项目,里面建一个页面,页面上放一个按钮:
第三步. 点击面板上的“云开发”,建立环境后(如果没有的话,请主动建立),去到“设置”中,添加第一步提到的商户号,并进行绑定,绑定时需要手机微信访问“商户助手”小程序进行绑定确认。
第四步. 然后建立一个叫“pay”的云函数,这个云函数引用了最新版的“wx-server-sdk”,里面有个cloudPay的类,里面有个unifieOrder的方法可以获取前端wx.requestPayment要用的参数。
第五步. 然后小程序页面的按钮绑定一个事件,事件的代码如下,这个方法就是调起微信默认的付款弹框的:
第六步. 然后建立一个回调用的payCallback方法(同时记得在“云开发”的“数据库”中建立一个叫“records”的数据集),用于在用户付款后进行记录,记得要打印{"errcode":0},不然本机制里会在一个短时间内多次进行回调函数的访问,会重复插入记录。
至此,整个支付功能就做完了,非常的简单。
其实花叔很早之前研究过用常规服务器的方案去做这一套,里面的各种参数啥的,生成起来还是挺麻烦的,现在基于云环境没几步就搞定了,真的是酸爽的很。