加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
cloud.js 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
秀杰 提交于 2017-10-30 19:49 . clound function
const uuid = require('uuid/v4');
const AV = require('leanengine');
const Order = require('./order');
const wxpay = require('./wxpay');
/**
* 一个简单的云代码方法
*/
AV.Cloud.define('hello', function(request, response) {
response.success('Hello world!');
});
/**
* 小程序创建订单
*/
AV.Cloud.define('pay', (request, response) => {
const user = request.currentUser;
if (!user) {
return response.error(new Error('用户未登录'));
}
const authData = user.get('authData');
if (!authData || !authData.lc_weapp) {
return response.error(new Error('当前用户不是小程序用户'));
}
const order = new Order();
order.tradeId = request.params.tradeNo;
order.status = 0;
order.user = request.currentUser;
order.productDescription = request.params.body;
order.amount = request.params.totalFee;
order.ip = request.meta.remoteAddress;
if (!(order.ip && /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(order.ip))) {
order.ip = '127.0.0.1';
}
order.tradeType = 'JSAPI';
// const acl = new AV.ACL();
// 只有创建订单的用户可以读,没有人可以写
// acl.setPublicReadAccess(false);
// acl.setPublicWriteAccess(false);
// acl.setReadAccess(user, true);
// acl.setWriteAccess(user, false);
// order.setACL(acl);
order.place().then(() => {
console.log(`预订单创建成功:订单号 [${order.tradeId}] prepayId [${order.prepayId}]`);
const payload = {
appId: process.env.WEIXIN_APPID,
timeStamp: String(Math.floor(Date.now() / 1000)),
package: `prepay_id=${order.prepayId}`,
signType: 'MD5',
nonceStr: String(Math.random()),
}
payload.paySign = wxpay.sign(payload);
response.success(payload);
}).catch(error => {
console.error(error);
response.error(error);
});
});
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化