雲調用使用
雲調用是基於小程序 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');
更多雲調用支持的開放能力見:https://opendocs.alipay.com/mini/cloudservice/khf843
同時我們提供了調用支付寶開放能力的通用雲調用接口,滿足您的開發需要。
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。