云开发技巧

本文涉及的产品
简介: 在云开发技巧中,我们将向你介绍:使用云函数HTTP触发器+云调用实现无需后端接入支付宝支付功能,并通过云函数接收支付回调功能;使用云函数定时触发器实现每天凌晨定时调度任务。

云开发技巧

在云开发技巧中,我们将向你介绍:
• 使用云函数HTTP触发器+云调用实现无需后端接入支付宝支付功能,并通过云函数接收支付回调功能;
• 使用云函数定时触发器实现每天凌晨定时调度任务。

使用云函数HTTP触发器实现支付回调

当开启某一函数的 HTTP触发功能后,只要使用 HTTP请求就可以访问到函数,开发者需要关注业务安全和资源安全。
• 业务安全:开发者需在云函数代码中做好权限控制和安全防护,避免未授权访问触发敏感操作。
• 资源安全:云函数开启了 HTTP 访问后,如果遇到大量恶意访问,消耗云函数资源,开发者可以将云函数的触发路径设置为空或关掉该Space的HTTP触发功能,停止HTTP触发支持。

开启云函数HTTP触发功能

• 新建用于处理支付回调逻辑的云函数,上传部署。
• 开启Space的HTTP触发功能调用接口 UpdateHttpTriggerConfig接口来开启Space的HTTP触发功能,注意需要设置EnableService为true。
系统会为开启HTTP触发功能的Space分配一个默认域名(DefaultEndpoint),供HTTP触发使用。
• 开启云函数的HTTP触发功能调用接口 UpdateFunction接口来为云函数设置HTTP触发路径HttpTriggerPath,只有设置了触发路径的云函数才能使用该功能。
• HTTP触发函数执行访问 https://${DefaultEndpoint}${HttpTriggerPath}http://${DefaultEndpoint}${HttpTriggerPath},即可触发对应的云函数执行。
• 介绍两种调用UpdateHttpTriggerConfigUpdateFunction的方式,一种是在阿里云的API在线调试界面 https://help.aliyun.com/document_detail/158669.html 以及 https://help.aliyun.com/document_detail/153370.html 发起在线API调用。另外一种就是在代码里集成 @alicloud/pop-core,示例代码如下:

const Core = require('@alicloud/pop-core');

var client = new Core({
  accessKeyId: '你的accessKeyId',
  accessKeySecret: '你的accessSecret',
  endpoint: 'https://mpserverless.aliyuncs.com',
  apiVersion: '2019-06-15'
});

var params = {
  "RegionId": "cn-hangzhou",
  "EnableService": true,
  "SpaceId": "你的spaceid"
}

var requestOption = {
  method: 'POST'
};

client.request('UpdateHttpTriggerConfig', params, requestOption).then((result) => {
  console.log(JSON.stringify(result));
}, (ex) => {
  console.log(ex);
})

云调用调用支付接口,并使用云函数的HTTP触发路径做为支付回调Url参数

  1. 在小程序项目的根目录执行以下命令安装 SDK。
npm install @alicloud/mpserverless-sdk --save
  1. 在 app.js 中初始化云调用SDK(全局只需初始化一次),并将之前获得的用于处理支付回调逻辑的云函数的HTTP触发路径(暂时支持http协议格式路径)作为初始化云调用SDK的参数。

import MPServerless from '@alicloud/mpserverless-sdk';
import cloud from 'alipay-serverless-sdk';

my.serverless = my.serverless || new MPServerless({
  uploadFile: my.uploadFile,
  request: my.request,
  getAuthCode: my.getAuthCode,
}, {
  appId: '',
  // 小程序云控制台中记得对比切换的空间是否正确哦~
  spaceId: '',
  clientSecret: '',
  endpoint: 'https://api.bspapp.com'
});

// 必须要初始化哦~cloud 是一个单例,初始化一次 App 引入均可生效
cloud.init(my.serverless,{
  notify:"http://xxxxxx.bspapp.com/callbackForPay"//此处填写您获得的云函数HTTP触发路径
});

其中每次调用UpdateFunction都会触发云函数的HTTP触发路径发生变化,发生变化之后务必记得更改云调用SDK初始化里的notify参数。

  1. 在小程序端使用云调用调用支付能力。
//使用云调用sdk调用支付创建接口
cloud.payment.common.create('iPhoneX', '2020053101122008', '5100.50', '2088xxxxx');

使用云函数定时触发实现定时调度任务

1.新建用于定时调度的云函数,代码编写完后上传部署。
2.调用UpdateFunction接口,通过设置参数TimingTriggerConfig来为云函数设置定时触发配置。
TimingTriggerConfig参数的值为一个cron表达式,例如cron:0 0 * * * *表示每个整点触发。配置规则仅支持设置cron表达式。
3.UpdateFunction接口的调用方式同样有两种,一种是在阿里云的API在线调试界面 https://help.aliyun.com/document_detail/153370.html 发起在线API调用。另外一种就是在代码里集成 @alicloud/pop-core,示例代码如下:

const Core = require('@alicloud/pop-core');

var client = new Core({
  accessKeyId: '你的accessKeyId',
  accessKeySecret: '你的accessSecret',
  endpoint: 'https://mpserverless.aliyuncs.com',
  apiVersion: '2019-06-15'
});

var params = {
  "RegionId": "cn-hangzhou",
  "Name": "你的云函数名称",
  "SpaceId": "你的spaceid",
  "TimingTriggerConfig": "1111"
}

var requestOption = {
  method: 'POST'
};

client.request('UpdateFunction', params, requestOption).then((result) => {
  console.log(JSON.stringify(result));
}, (ex) => {
  console.log(ex);
})

课程作业
支付宝扫码登陆官方小程序【小程序云开发助手】,在 学习 > 训练营打卡作业 > 云开发技巧 中提交作业。
image.png

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
Java API 开发工具
安卓应用程序开发:从新手到专家
【2月更文挑战第28天】 在这篇文章中,我们将探索安卓应用程序开发的过程,从基本概念到高级技术。我们将讨论如何设置开发环境,创建你的第一个安卓应用,理解安卓的生命周期,以及如何使用各种API和库来增强你的应用。无论你是刚刚入门的新手,还是希望提升技能的开发者,这篇文章都将为你提供有价值的信息。
|
3月前
|
安全 区块链 数据安全/隐私保护
链游开发正式版丨链游系统开发指南教程丨链游系统源码程序
链游系统开发规则指的是在构建基于区块链技术的游戏系统时需要遵循的一系列规定和准则。这些规则旨在确保链游系统的安全性、可靠性、透明性和用户体验,
|
10月前
|
XML SQL JSON
程序员开发常用的云在线工具
云在线开发工具:代码格式化,base64/md5加密解密,utf-8转换,时间戳在线生成
179 0
|
12月前
|
缓存 小程序 数据库
微信小游戏开发最全系列教程
嗨!大家好,我是小蚂蚁。 最近有非常多的新朋友关注了我,再加上这一段时间里,我又写了很多的原创教程,所以,更新一下这篇“微信小游戏开发最全系列教程”,做了很多的补充,希望能够对你有帮助,可以把这篇文章收藏一下,以便在需要的时候可以找得到,因为很可能这是全网最好的微信小游戏开发系列教程资料了。 这里的教程文章已经帮助过很多人做出了自己的第一款游戏,希望它们还能够继续帮助更多想要做游戏的朋友,进入游戏开发世界的大门。
130 0
|
IDE 数据可视化 Cloud Native
【产品新体验】- CSDN云IDE初体验
。今天就来简单学习一下CSDN的云产品 - 云IDE。云IDE是CSDN的最新产品,能够一键秒级构建云开发环境,能够提供开发者肉眼可见的开发效率。
105 0
【产品新体验】- CSDN云IDE初体验
|
弹性计算 Shell 数据安全/隐私保护
全新开发者体验实验室功能介绍
体验实验室全新上线,全新全意为开发者服务,点击开始体验,开始学习旅程。
全新开发者体验实验室功能介绍
|
IDE Serverless API
阿里云云开发实践笔记【1】
阿里云云开发实践笔记
172 0
|
JavaScript 开发者
APICloud App开发教程之云修复功能
使用APICloud开发平台的云修复功能可以实现快速版本迭代,快速修复bug。不用发布新的apk或者ipa版本既可对你的app进行更新,即增量更新。在项目迭代过程中,如果修改了其中某几个文件,那么只需要更新这几个文件即可。
160 0
APICloud App开发教程之云修复功能
好工具推荐系列:你的生产力工具集
好工具推荐系列:你的生产力工具集
179 0
|
开发工具
直播软件APP开发,小白做开发需要注意什么
作为小白期的运营商们,在直播软件APP开发时会有很多疑问,有些问题不是自己查就能看明白的,如果遇到较好的开发团队还好,就怕遇到不好的开发团队,耽误了开发的时间。小白期间,有这些事情需要去了解。
1130 0