阅读(1393) (8)

支付宝小程序Serverless 支付能力API·cloud.payment.common.create

2020-09-07 11:52:56 更新

cloud.payment.common.create 是通用接口的创建交易 接口。

入参说明

字段名 类型 必填 说明
subject String 订单标题
outTradeNo String 商户订单号,64个字符以内,可包含字母、数字、下划线,需保证在商户端不重复
totalAmount String 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
buyerId String 买家的支付宝用户ID,如果为空,会从传入的码值信息中获取买家ID
notify_url String 支付宝服务器主动通知商户服务器里指定的页面http/https路径,也可以是云函数的http触发路径。
appAuthToken String 三方代调用应用访问令牌,目前仅在云函数中调用支持。

调用示例

在云函数中调用

// 云函数中使用云调用无需引入其他依赖,只需要使用ctx.cloud调用
module.exports = async function (ctx) {
  const res = await ctx.cloud.payment.common.create({
    // 参数接收自云函数调用端传入的参数
    subject: ctx.args.subject,
    outTradeNo: ctx.args.outTradeNo,
    totalAmount: ctx.args.totalAmount,
    buyerId: ctx.args.buyerId
  });
  return res;
};

支持传入notifyUrl接收支付宝服务器交易通知

// 云函数中使用云调用无需引入其他依赖,只需要使用ctx.cloud调用
module.exports = async function (ctx) {
  const res = await ctx.cloud.payment.common.create({
    // 参数接收自云函数调用端传入的参数
    subject: ctx.args.subject,
    outTradeNo: ctx.args.outTradeNo,
    totalAmount: ctx.args.totalAmount,
    buyerId: ctx.args.buyerId
  }, {
    // 传入接收支付宝服务器交易通知的http/https路径,也可以是云函数的http触发路径
    notify: {
        url: 'http://api.test.alipay.net/atinterface/receive_notify.htm'
    }
  });
  return res;
};

支持传入appAuthToken进行三方代调用

// 云函数中使用云调用无需引入其他依赖,只需要使用ctx.cloud调用
module.exports = async function (ctx) {
  const res = await ctx.cloud.payment.common.create({
    // 参数接收自云函数调用端传入的参数
    subject: ctx.args.subject,
    outTradeNo: ctx.args.outTradeNo,
    totalAmount: ctx.args.totalAmount,
    buyerId: ctx.args.buyerId
  }, {
    // appAuthToken参数接收自云函数调用处传入的参数
    appAuthToken: ctx.args.appAuthToken
  });
  return res;
};

在小程序页面调用

alipay-serverless-sdk 版本&=1.0.0

const createRes = await cloud.payment.common.create({
    subject: '小程序Serverless支付测试',
    outTradeNo: "demo" + new Date().getTime(),
    totalAmount: '0.01',
    buyerId: '2088202286335281'
  });

alipay-serverless-sdk 版本<1.0.0

const createRes = await cloud.payment.common.create('小程序Serverless支付测试', "demo" + new Date().getTime(), '0.01', '2088202286335281');

返回数据示例

{
    "code":"10000",
    "msg":"Success",
    "out_trade_no":"20150423001001",
    "trade_no":"2015042321001004720200028594"
}