0.9.16 • Published 4 years ago

alipay-cloud-sdk v0.9.16

Weekly downloads
93
License
-
Repository
-
Last release
4 years ago

Serverless 云端调用 - 支付宝开放平台

一、基本使用

npm 安装 alipay-cloud-sdk

npm install --save alipay-cloud-sdk

alipay-cloud-sdk 依赖于 @alicloud/mpserverless-sdk

// 1. 引入必要的 sdk
import MiniProgram from '@alicloud/mpserverless-sdk';
import cloud from 'alipay-cloud-sdk';

// 2. 在 app.js 中对 sdk 进行初始化
// 2.1 初始化 mpserverless
const mpserverless = new MiniProgram(my, {
  // 参数能在小程序云服务空间详情中获取
  appId: '',
  spaceId: '',
  endpoint: '',
  clientSecret: '',
});
// 2.3 初始化 alipay-cloud-sdk
cloud.init(mpserverless);

// 3. 在想要使用的页面导入 alipay-cloud-sdk 即可使用
// 比如在 page.js
import cloud from 'alipay-cloud-sdk';

cloud.base.uploadImage({
  filePath: 'https://images/test.jpg',
  fileName: 'test.jpg',
});

二、SDK 支持的配置

在 SDK 初始化的时候,支持一些配置,目前支持如下:

1. 交易消息回调
cloud.init(mpserverless, {
  // 配置此参数后,拥有回调消息的 openapi 将回调该地址
  notify: {
    url: 'https://callback',
  },
});

三、支持的能力

基础的常量能在 sdk 的 constants 目录导入

import MediaType from 'alipay-cloud-sdk/dist/umd/constants/MediaType';
  • 通用基础能力
cloud.base.oauth.getToken({
  grantType: GrantType.AUTH_CODE,
  code: 'authCode', // 通过 JSAPI my.getAuthCode 获取
});
cloud.base.uploadImage({
  fileName: 'test.jpg',
  filePath: 'https://images/test.jpg',
  fileType: MediaType.JPG, // 可选,默认 JPG
});
cloud.base.uploadVideo({
  fileName: 'test.mp4',
  filePath: 'https://videos/test.mp4',
});
// 获取用户数据,如果是老云函数版本需要传入 { authToken: '你的 accessToken' }
// 如果是接入了新云函数,即不需要参数
cloud.base.getUserInfo();
// 提供的通用调用方法,与 openapi 调用模式很像,调用虽然不是很友好,但是可以很快支持未封装的API需求
// 这个通用调用方法仅适用于有 bizContent 包裹对象的接口 
cloud.base.exec('alipay.xxx.yyy', {})
  • 支付能力
import { BillType } from 'alipay-cloud-sdk/dist/umd/contants/BillType';
// 创建支付宝交易号
cloud.payment.create({
  outTradeNo: String(+new Date()),
  totalAmount: '0.1',
  subject: '购买物品',
  buyerId: '支付用户的 userId', // 通过 cloud.base.oauth.getToken 可以获取
});
// 条形码支付
cloud.payment.pay({
  outTradeNo: String(+new Date()),
  authCode: '条形码',
  subject: '购买物品',
  totalAmount: '0.1',
});
// 通过商家交易号查询交易
cloud.payment.query({
  outTradeNo: String(+new Date()),
});
// 关闭交易,只改变交易的状态
cloud.payment.close({
  outTradeNo: String(+new Date()),
});
// 撤销交易,有事务的回滚
cloud.payment.cancel({
  outTradeNo: String(+new Date()),
});
// 退款
cloud.payment.refund({
  outTradeNo: String(+new Date()),
  refundAmount: '0.1',
});
// 查询对账单地址,T+1 规则
cloud.payment.getBillUrl({
  billType: BillType.TRADE,
  billDate: '2019-11-11', // yyyy-MM-dd
});
  • 小程序能力
import { FaceType } from 'alipay-cloud-sdk/dist/umd/contants/FaceType';
// 刷脸认证
cloud.mini.queryFaceCertifyId({
  bizId: String(+new Date()),
  zimId: '', // 通过 JSAPI my.ap.faceVerify 获取
  faceType: FaceType.REAL_AUTH,
  needImg: false,
});
// 人脸采集
cloud.mini.queryFaceVerified({
  bizId: String(+new Date()),
  zimId: '',
  externParam: {}, // 可选
});
// 创建小程序推广二维码
cloud.mini.createQrcode({
  urlParam: 'pages/index/index',
  queryParam: {
    key: 'value'
  },
  describe: '二维码描述',
});
// 发送模板消息
cloud.mini.sendTemplateMessage({
  toUserId: '当前用户 userId',
  formId: '表单组件的 formId',
  userTemplateId: '模板ID', // 管理后台可取
  page: '消息唤起的小程序页面',
  data: {
    // 模板关键词
    keyword1: {
      value: 'value',
    },
  },
});
// 文本风险识别
cloud.mini.detectRiskContent({
  content: '文本',
});
  • 营销能力
export interface TriggerDrawCampRequest {
  userId?: string;
  campId: string;
  loginId?: string; // 这里冗余,对外只要求必传 userId
  bindMobile?: string;
  campSource?: CampSource;
  jsonUa?: string;
  channelInfo?: string;
  clientIp?: string;
  outBizNo?: string;
}
cloud.ap.marketing.triggerDrawCamp({
  campId: '活动id'
});

四、异常

1. 统一异常结构
const error = {
  errCode: ErrorCode.INVALID_PARAM,
  errMsg: 'message',
  message: '具体的描述', // `errCode: ${errCode} | errMsg: ${errMsg}`;
}
2. 错误码
错误码错误码描述备注
SYS_INITSDK 初始化错误未调用 .init(mpserverless) 来初始化
FEATURE_NOT_SUPPORT暂不支持的 API--
INVALID_JSON_OBJECTJSON 解析失败不合法 JSON 解析的时候会报错,主要是入参
NOT_FOUND_PARAM参数缺省参数不全,错误提示中有具体参数名
INVALID_PARAM参数不合法参数类型或者值不对

五、常量

提供一些常量,可用于 API 参数使用。

1. 导入常量
// 授权类型
import { GrantType } from 'alipay-cloud-sdk/dist/umd/contants/GrantType';
2. 具体的常量
  • 查询账单地址类型
const BillType = {
  TRADE: 'trade',
  SIGN_CUSTOMER: 'signcustomer',
}
  • 用户类型
const BuyerUserType = {
  // 企业
  CORPORATE: 'CORPORATE',
  // 个人
  PRIVATE: 'PRIVATE',
}
  • 人脸认证类型
const FaceType = {
  // 匿名注册
  ANONYMOUS_REGISTER: 1,
  // 匿名认证
  ANONYMOUS_AUTH: 2,
  // 实名认证
  REAL_AUTH: 3,
}
  • 授权类型
const GrantType = {
  AUTH_CODE: 'authorization_code',
  REFRESH_TOKEN: 'refresh_token',
}
  • 上传文件类型
const MediaType = {
  JPG: 'jpg',
  BMP: 'bmp',
  PNG: 'png',
  JPEG: 'jpeg',
  GIF: 'gif',
  // 视频目前只支持 mp4
  MP4: 'mp4',
}
  • 支付状态
const TradeStatus = {
  WAIT_BUYER_PAY: 'WAIT_BUYER_PAY',
  TRADE_CLOSED: 'TRADE_CLOSED',
  TRADE_SUCCESS: 'TRADE_SUCCESS',
  TRADE_FINISHED: 'TRADE_FINISHED',
}
0.9.16

4 years ago

0.9.15-dev.1

4 years ago

0.9.15-dev.0

4 years ago

0.9.14

4 years ago

0.9.13-dev.4

4 years ago

0.9.13-dev.2

4 years ago

0.9.13-dev.3

4 years ago

0.9.13-dev.1

4 years ago

0.9.13-dev.0

4 years ago

0.9.13

4 years ago

0.9.12-dev.4

4 years ago

0.9.12-dev.3

4 years ago

0.9.12-dev.2

4 years ago

0.9.12-dev.1

4 years ago

0.9.12-dev.0

4 years ago

0.9.12

4 years ago

0.9.10

4 years ago

0.9.11

5 years ago

0.0.5

5 years ago

0.0.4-beta.0

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2-beta.5

5 years ago

0.0.2-beta.4

5 years ago

0.0.2-beta.3

5 years ago

0.0.2-beta.2

5 years ago

0.0.2-beta.1

5 years ago

0.0.2-beta.0

5 years ago

0.0.1

5 years ago