1.申请小程序
2. 使用云函数开发小程序
1)获取openid
// 初始化云函数
cloud.init({
// API 调用都保持和云函数当前所在环境一致
env: cloud.DYNAMIC_CURRENT_ENV
})
cloud.getWXContext() // 获取context, 里面包含了OPENID等信息
2)小程序支付
小程序后台要先完成商户号关联和微信认证,然后需要在IDE中设置好商户号
cloud.cloudPay.unifiedOrder(orderInfo) // order参数是一个object
这里有几点需要注意:
a) 参数orderInfo.functionName,是微信支付完成后微信平台需要调用的函数名,是云函数,需要开发,必须返回{errcode: 0, errmsg: 'SUCCESS'},否则微信平台会反复调用它,它需要拥有处理重复消息的能力。另外使用云函数开发,不会有签名字符串返回,无法做签名校验。
b) orderInfo. subMchId 是关联的商户号,不一定是子商户号
c) orderInfo.spbillCreateIp 是服务器的公网IP地址
3. 云函数的返回问题
云函数默认是1秒返回,可以调整。当使用了setTimeout之类的函数,setTimeout内的函数在运行完成之前,如果先return了结果前端可以收到返回值,但是由于云函数还在运行,若超时,云函数还是会抛出一个超时错误