云调用使用
云调用是基于小程序 Serverless 的云函数来使用支付宝小程序开放接口的能力,可以方便的让开发者在小程序中直接调用支付宝的后端开放接口,不需要关注服务端的相关配置,极大的减少了接入的流程,进一步降低了支付宝小程序的开发门槛。
目前云调用涵盖了支付宝开放的基础能力、营销能力、会员能力、支付能力、安全能力和资金能力,以及阿里云开放的短信能力。
步骤一:开通云调用功能
完成以下操作,在小程序云控制台开通云调用功能:
- 打开小程序云控制台。
- 在导航栏选择 扩展能力。
- 在扩展能力页面,单击立即开通。
- 单击前往 RAM 进行授权,然后单击同意授权允许小程序访问函数计算服务。
- 返回扩展能力页面,查看开通状态。
步骤二:安装并初始化SDK
- 在小程序项目的根目录执行以下命令安装 SDK。
npm install @alicloud/mpserverless-sdk --save
npm install alipay-serverless-sdk --save
- 在 app.js 中初始化云调用 SDK(全局只需初始化一次)。
// 1. 引入必要的 sdk
import MPServerless from '@alicloud/mpserverless-sdk';
import cloud from 'alipay-serverless-sdk';
// 2. 在 app.js 中对 sdk 进行初始化
// 2.1 初始化 MPServerless
my.serverless = my.serverless || new MPServerless({
uploadFile: my.uploadFile,
request: my.request,
getAuthCode: my.getAuthCode,
}, {
// 2.2 参数能在小程序云服务空间详情中获取
appId: '',
spaceId: '',
clientSecret: '',
endpoint: ''
});
// 2.3 初始化 alipay-serverless-sdk
cloud.init(my.serverless);
其中:
- appId 是小程序的 ID。您可以在支付宝小程序控制台获得。
- spaceId、clientSecret 和 endpoint 在小程序 Serverless 控制台创建服务空间后可以获得。
- 在想要使用 SDK 的页面导入 alipay-serverless-sdk 即可使用。
// 比如在 page.js导入alipay-serverless-sdk
import cloud from 'alipay-serverless-sdk';
//调用对应能力的API
const res = await cloud.base.qrcode.create(urlParam, queryParam, describe);
云调用SDK接口说明
云调用SDK提供了基础能力、营销能力、会员能力、支付能力、安全能力和资金能力以及通用调用能力的接口调用,只需要开通云调用,你就能在小程序端快捷的调用各类接口。(云函数端调用云调用接口也将在近期开放)
基础能力
-
用户授权
- 获取授权访问令牌 cloud.base.oauth.getToken
- 刷新授权访问令牌 cloud.base.oauth.refreshToken
import cloud from 'alipaytest-serverless-sdk'
const res = await cloud.base.oauth.getToken('yourauthcode');
-
小程序二维码
- 创建小程序二维码 cloud.base.qrcode.create
import cloud from 'alipaytest-serverless-sdk'
const res = await cloud.base.qrcode.create('pages/index/index','key=value','我的二维码描述');
营销能力
-
小程序模板消息
import cloud from 'alipaytest-serverless-sdk'
const res = await cloud.marketing.templateMessage.send('2088xxxxx','2017010100000000580012345678','MDI4YzIxMDE2M2I5YTQzYjUxNWE4MjA4NmU1MTIyYmM=','page/component/index','');
资金能力
-
无密转账到支付宝账号
- 单笔转账 cloud.fund.transferAccount.transfer
import cloud from 'alipaytest-serverless-sdk'
const res = await cloud.fund.transferAccount.transfer('155983843433000','1.00',{
identity: '2088xxxxxxxxx',
identity_type: 'ALIPAY_USER_ID'
},'转账标题');
支付能力
- 当面付
- 当面付交易付款 cloud.payment.faceToFace.pay
import cloud from 'alipaytest-serverless-sdk'
const res = await cloud.payment.faceToFace.pay('Iphone6 16G','20150320010101001','88.88','28763443825664394');
更多云调用支持的开放能力见可以使用支付宝扫码登陆官方小程序云开发助手,在 学习 > 云调用SDK文档 学习更多云调用开放能力的使用。
同时我们提供了调用支付宝开放能力的通用云调用接口,满足您的开发需要。
var exchangeUseParams = new Object({
user_id: 2088xxxxxx',
voucher_id: '2020132xxxxxxx',
out_biz_no: 'xxxxxx'
});
const res = await cloud.util.generic.execute('alipay.marketing.exchangevoucher.use',
exchangeUseParams);
云调用模板工程
打开小程序IDE工具,点击【模板选取】的【云与开放能力】,选择 Serverless支付宝能力地图demo。
课程作业
支付宝扫码登陆官方小程序【小程序云开发助手】,在 学习 > 训练营打卡作业 > 云调用使用 中提交作业。