W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
云調(diào)用是基于小程序 Serverless 的云函數(shù)來使用支付寶小程序開放接口的能力,可以方便的讓開發(fā)者在小程序中和云函數(shù)中直接調(diào)用支付寶的后端開放接口,不需要關注服務端的相關配置,極大的減少了接入的流程,進一步降低了支付寶小程序的開發(fā)門檻。
目前云調(diào)用涵蓋了支付寶開放的基礎能力、營銷能力、會員能力、支付能力、安全能力和資金能力,以及阿里云開放的短信能力。
支持在小程序端和云函數(shù)端調(diào)用云調(diào)用。
完成以下操作,在小程序云控制臺開通云調(diào)用功能:
// 云函數(shù)中使用云調(diào)用無需引入其他依賴,只需要使用ctx.cloud調(diào)用
module.exports = async function (ctx) {
const res = await ctx.cloud.payment.faceToFace.pay({
// 參數(shù)接收自云函數(shù)調(diào)用端傳入的參數(shù)
subject: ctx.args.subject,
outTradeNo: ctx.args.outTradeNo,
totalAmount: ctx.args.totalAmount,
authCode: ctx.args.authCode
});
return res;
};
1.在小程序項目的根目錄執(zhí)行以下命令安裝 SDK。
npm install @alicloud/mpserverless-sdk --save
npm install alipay-serverless-sdk --save
2.在 app.js 中初始化云調(diào)用 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: ''});
cloud.init(my.serverless);
其中:
3.在想要使用 SDK 的頁面導入 alipay-serverless-sdk 即可使用。
import cloud from 'alipay-serverless-sdk';
const res = await cloud.base.qrcode.create({
urlParam: 'pages/index/index',
describe: '我的二維碼描述',
queryParam: 'key=value'
});
云調(diào)用SDK提供了基礎能力、營銷能力、會員能力、支付能力、安全能力和資金能力以及通用調(diào)用能力的接口調(diào)用,只需要開通云調(diào)用,你就能在小程序端和云函數(shù)端快捷的調(diào)用各類接口。
在云函數(shù)端調(diào)用
module.exports = async function (ctx) {
const res = await ctx.cloud.base.oauth.getToken({
// code參數(shù)接收自云函數(shù)調(diào)用處傳入的參數(shù)
code: ctx.args.authCode
});
return res;
};
在小程序端調(diào)用
import cloud from 'alipay-serverless-sdk';
const res = await cloud.base.oauth.getToken({
code: 'Your authcode'
});
在云函數(shù)端調(diào)用
// 云函數(shù)中使用云調(diào)用無需引入其他依賴,只需要使用ctx.cloud調(diào)用
module.exports = async function (ctx) {
const res = await ctx.cloud.base.qrcode.create({
urlParam: 'pages/index/index',
describe: '我的二維碼描述',
queryParam: 'key=value' });
return res;
};
在小程序端調(diào)用
const res = await cloud.base.qrcode.create({
urlParam: 'pages/index/index',
describe: '我的二維碼描述',
queryParam: 'key=value'
});
在云函數(shù)端調(diào)用
// 云函數(shù)中使用云調(diào)用無需引入其他依賴,只需要使用ctx.cloud調(diào)用
module.exports = async function (ctx) {
const res = await ctx.cloud.marketing.templateMessage.send({
// 參數(shù)接收自云函數(shù)調(diào)用端傳入的參數(shù)
toUserId: ctx.args.toUserId,
formId: ctx.args.formId,
page: ctx.args.page,
data: ctx.args.data,
userTemplateId: ctx.args.userTemplateId });
return res;
};
在小程序端調(diào)用
const res = await cloud.marketing.templateMessage.send({
// 參數(shù)接收自云函數(shù)調(diào)用端傳入的參數(shù)
toUserId: '2088102122458832',
formId: '2017010100000000580012345',
page: 'page/component/index',
data: '{"keyword1": {"value" : "12:00"}}',
userTemplateId: 'MDI4YzIxMDE2M2I5YTQzYjUxNWE4MjA4NmU1MTIyYmM=' });
在云函數(shù)端調(diào)用
// 云函數(shù)中使用云調(diào)用無需引入其他依賴,只需要使用ctx.cloud調(diào)用
module.exports = async function (ctx) {
var payee = new Object({
identity: cctx.args.identity,
identity_type: 'ALIPAY_USER_ID' });
const res = await ctx.cloud.fund.transferAccount.transfer({
// 參數(shù)接收自云函數(shù)調(diào)用端傳入的參數(shù)
outBizNo: ctx.args.outBizNo,
transAmount: ctx.args.transAmount,
payeeInfo: payee,
orderTitle: ctx.args.orderTitle
});
return res;
};
在小程序端調(diào)用
const res = await cloud.fund.transferAccount.transfer({
outBizNo: '2077353455543433',
transAmount: '0.01',
payee: payeeInfo,
orderTitle: '測試'
});
在云函數(shù)端調(diào)用
// 云函數(shù)中使用云調(diào)用無需引入其他依賴,只需要使用ctx.cloud調(diào)用
module.exports = async function (ctx) {
const res = await ctx.cloud.payment.faceToFace.pay({
// 參數(shù)接收自云函數(shù)調(diào)用端傳入的參數(shù)
subject: ctx.args.subject,
outTradeNo: ctx.args.outTradeNo,
totalAmount: ctx.args.totalAmount,
authCode: ctx.args.authCode
});
return res;
};
在小程序端調(diào)用
const payRes = await cloud.payment.faceToFace.pay({
subject: '小程序Serverless支付測試',
outTradeNo: "demo" + new Date().getTime(),
totalAmount: '0.01',
authCode: '286532211313197763'
});
說明:更多云調(diào)用支持的開放能力見可以使用支付寶掃碼登陸官方小程序云開發(fā)助手,在 學習 > 云調(diào)用 SDK 文檔 學習更多云調(diào)用開放能力的使用。
同時我們提供了調(diào)用支付寶開放能力的通用云調(diào)用接口,滿足您的開發(fā)需要。
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。
加入支付寶小程序 Serverless 開發(fā)者群參與討論,釘釘搜索群號:21922182,或使用釘釘掃描二維碼加入。
?
?
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: