作者归档:Wei Chen

LeanCloud 开源工单系统 LeanTicket 焕然一新

相信很多开发者已经注意到,LeanCloud 的工单系统 LeanTicket 改版了。新版的 LeanTicket 不仅更新了界面,采用了响应式的页面布局来适配移动端,并且添加了诸多新功能,如增加了更多的工单状态来更清楚地罗列工单时间线的变化和下一步行动、完善了统计报告、优化了系统响应速度等等。

继续阅读

系统维护通知:LeanCache 将于 8 月 29、30 日进行升级

我们将于 2016 年 8 月 29 日和 30 日分别对美国区和中国区的所有 LeanCache 实例进行升级。此次升级的主要目的是为了提高 LeanCache 在极端情况下的稳定性。

在升级过程中,云引擎应用与 LeanCache 的连接会出现几秒钟的中断。使用了云引擎 Node.js 运行环境的应用开发者,需要确保在代码中加入对 redis on error 事件的处理,否则上述的连接中断可能会造成应用的异常退出。具体处理方法请参考 文档和示例代码

使用了其他语言运行环境的云引擎应用不会受到连接中断的影响。

维护时间

美国区:北京时间 8 月 29 日下午 2 点(美国时间 29 日凌晨)
中国区:北京时间 8 月 30 日凌晨 1 点

如果有任何疑问,请发邮件至 support@leancloud.rocks 进行咨询。感谢您的理解与配合!

云引擎即将升级,应用可自主配置资源来提升服务性能

云引擎从起步到现在将近 2 年,一直为开发者免费提供服务,其所服务的应用数量也在不断增长。为了更好地满足开发者对应用性能的可控需求,同时实现我们对后端支撑资源的合理配置,保证云引擎的健康成长,我们将于 2016 年 4 月 2 日(周六)对云引擎进行重要升级

新版云引擎开始支持 Node.js 4.x 环境,优化了代码部署流程,并且最大的改变是:增加了多实例的管理功能——开发者可以自主决定启动多少个云引擎实例,以及每个实例的规格;同时我们推出了免费和付费两种使用方案。

继续阅读

云引擎启用新的二级域名 leanapp.cn

我们于 2015 年 12 月 31 日 为云引擎正式启用了新的二级域名 leanapp.cn,用来代替之前的域名 avosapps.com,如此可以解决用户在使用云引擎时遇到的 DNS 污染问题。同时,测试环境的域名也做了更改:

旧域名dev.{应用二级域名}.avosapps.com
新域名stg-{应用二级域名}.leanapp.cn

继续阅读

云引擎 1.0 运行环境下线通知

我们计划于 2015 年 12 月 1 日零时,将版本较低的云引擎 1.0 运行环境下线。届时所有使用云引擎 1.0 运行环境的应用在请求云引擎时将收到错误响应,所有云引擎相关的 hook 函数将不可用,这可能会影响到其他服务(如存储、实时通信)。因此,请使用 1.0 版本的用户提前做好测试,尽快按下面的说明完成升级,以免给最终用户带来影响。

我们最新的云引擎版本为 3.0,于 2015 年 5 月推出,其主要特性是「去沙箱」和「支持 Python 运行时」。没有沙箱环境使得在云引擎上可以运行标准的 Node.js 项目,支持任意的 Web 框架,项目开发调试会更加灵活。这些都使得 3.0 在性能和功能上较其前任们有很大的提升,因此我们推荐用户升级到最新的 3.0 版本。

由于技术跨度较大,我们不支持从 1.0 直接升级到 3.0,所以 1.0 需要先升级到 2.0 后再升级到 3.0。

下线时间

2015 年 12 月 1 日 0:00

继续阅读

云代码正式更名「云引擎」,3.0 版本重磅上线

在云代码 2.0 中,大家可以通过使用自定义的第三方包,灵活地进行开发。但由于架构在沙箱环境中,云代码 2.0 在功能上会受到局限。为此,我们对其进行重构和改进,现在正式推出云代码 3.0。同时,我们将「云代码」正式更名为「云引擎」,即 LeanEngine,旨在打造一个更加通用的多运行时平台。

最新的云引擎,具备两个明显的特征:「去沙箱」和「支持 Python 运行时」。

继续阅读

「轻松支付,只需几步」使用 LeanCloud 云代码接入支付宝示例

如果你的应用想接入支付宝,让用户可以在应用内部直接支付,你可以看下这篇文档和开源项目,也许会给你带来一些帮助。

项目:https://github.com/leancloud/cloud-code-alipay

了解支付宝「即时到账收款」

在尝试该项目之前,你需要了解支付宝「即时到账收款」这个功能:

  • 相关的介绍在这里:即时到帐收款
  • 确认自己有「企业支付宝账号(不含个体工商户)」
  • 了解整个流程是什么样子的

然后就可以继续了。

安装

下载代码:

git clone git@github.com:leancloud/cloud-code-alipay.git

修改支付宝相关的配置 cloud/config/alipay.js

module.exports = {
  sign_type: 'MD5',
  alipay_gateway: 'https://mapi.alipay.com/gateway.do?',
  https_verify_url: 'https://mapi.alipay.com/gateway.do?service=notify_verify&',
  partner: '2088000000000000',
  key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  notify_url: 'http://xxx.avosapps.com/pay/notify',
  return_url: 'http://xxx.avosapps.com/pay/return'
}
  • alipay_gateway: 支付宝网关,一般情况默认即可。
  • https_verify_url: 支付宝回调验证 url,一般情况默认即可。
  • partner: 合作者身份(PID),2088 开头的 16 位数字,可以在支付宝网站查找: https://b.alipay.com/order/pidAndKey.htm
  • key: 安全校验码,数字加字幕的字符串,可以在支付宝网站查找: https://b.alipay.com/order/pidAndKey.htm
  • notify_url: 支付宝异步通知 url,二级域名根据 LeanCloud 云代码配置而定。
  • return_url: 支付宝同步通知 url,二级域名根据 LeanCloud 云代码配置而定。

部署

配置 LeanCloud appId 和 appKey

avoscloud app add <projectName> <appId>

切换目标应用

avoscloud checkou <projectName>

部署应用到测试环境和生产环境

avoscloud deploy && avoslcoud publish

提示: 过程中可能会提示输入 masterKey。

如果没有错误,请打开浏览器,根据自己的二级域名键入网址:

http://<yourPath>.avosapps.com

如果看到「支付宝即时到账交易接口」的页面,恭喜你,部署成功!

感受一下

  1. 在「支付宝即时到账交易接口」的测试页面,输入相关信息。注意:「卖家支付宝账户」需要和「partner」对应;金额可以输入 0.01 (表示支付 1 分钱) 来进行尝试。输入完成后点击确认。
  2. 你将看到跳转到支付宝页面,输入自己的支付宝账号和支付密码等完成支付。
  3. 支付完成后会跳转回我们自己的应用页面,并显示 验证结果:true。支付流程结束。当然,你的 1 分钱也转到了对应的卖家账户 ;)

开发相关

文件说明

  • cloud/app.js: 支付宝相关请求路由。
  • cloud/alipay.js: 支付宝相关签名验证,生成跳转等逻辑。

路由信息

  • GET /: 静态首页 public/index.html
  • POST /pay: 接受表单信息、签名,并准备跳转到支付宝。
  • GET /pay/return: 等待支付宝同步回调,并验证调用方是否真正来自支付宝。
  • POST /pay/notify: 等待支付宝异步回调,并验证调用方是否真正来自支付宝。

更 lean 更便捷,云代码「精益模式」上线

很多用户使用 Cloud Code 云代码 是为了在服务端提供一些个性化的方法供各终端调用,而不希望关心诸如代码托管、npm 依赖管理等问题。为此我们提供了在线维护 Cloud Code 的功能。

提醒

使用此功能,你需要注意:

  • 会替代您之前 git 或者命令行部署的项目。
  • 暂不提供 Web hosting 功能。
  • 维护的所有函数可以生成并导出一个完整的项目,供 git 或命令行部署(即将推出)。
  • 之前由项目维护的云代码方法并不会显示在此处,可以认为「定义函数」和使用项目维护的云代码是两套代码。具体使用什么代码,是由最后一次部署使用什么功能决定(「定义函数」的每一个添加、修改、发布、删除动作都是一个部署动作)。

cloud_code_snippet

左上角的「创建函数」可以新创建一个函数。中间部分是已经创建好的函数,并可以进行一些维护操作。

函数类型

有几种函数类型:

  • Function:对应 AV.Cloud.define 定义的方法。
  • Hook:对应 AV.Cloud.beforeSave 等回调定义的方法。
  • Global:对应全局变量,一些全局变量和公共函数可以定义在这里。

这些函数的使用场景和具体细节,参见:Cloud 函数

创建函数

如果需要创建一个新的函数,可以点击「创建函数」按钮,您将看到如下窗口:

cloud_code_snippet_create

您需要设置的部分包括:

  • 函数类型
  • 函数名称
  • 数据具体的代码片段(注意,你不需要输入函数定义部分,即 AV.Cloud.define(...) 部分)
  • 注释
  • 全部 OK 后点击「保存」,或者放弃编辑点击「关闭」

您可以在代码框中填入下列代码:

var name = request.params.name;
if (name) {
    response.success('Hello ' + name);
} else {
    response.error('name?')
}

点击保存后,Cloud Code 会在后台编译、保存,并将代码部署到「测试环境」,这个过程可能需要十几秒钟的时间,请耐心等待。全部完成后,页面上方会提示「已更新到测试环境」;如果有错误(比如编译错误)则会出现类似提示:加载代码出错: SyntaxError: Unexpected token )

发布

如果函数部署「测试环境」成功,就可以点击「发布」按钮将函数发布到「生产环境」。同样该过程可能需要十几秒钟的时间,请耐心等待。全部完成后,页面上方会提示「已发布到生产环境」。

同步

对于某个函数,可能生产环境运行一个版本,而测试环境正在开发一个新的版本,两个环境的代码是不一致的,这时函数列表页面相关函数的「测试环境」按钮会变成蓝色:

cloud_code_snippet_diff_version

当您在测试环境开发完成,点击「发布」后,两个环境的代码将会统一,这时「测试环境」按钮变为灰色。

测试

如果需要测试,可以点击相应函数的「调用」按钮,你将看到如下窗口:

cloud_code_snippet_invoke

选择调用环境,并输入调用参数,点击「运行」按钮即可看到调用结果。如果调用返回的 Http Status Code 不是 200,则页面上方会提示相关错误信息。

历史版本

如果您想看某个函数之前曾经部署过的代码,可以在函数列表页面点击「历史」按钮,将会弹出类似下面的窗口:

cloud_code_snippet_history

您可以点击时间来查看不同时间部署的代码。

删除

如果您确定某个函数已经不再需要,可以在函数列表页面点击「删除」按钮将其删除。注意:删除后该函数和其所有历史记录都将被删除,而且不能恢复。删除动作会重新部署测试和生产环境,这个过程可能需要十几秒钟的时间,请耐心等待。