node.js接入支付宝小程序的实名认证接口

本文档可以对照官方文档来看:支付宝身份验证

一、配置支付宝开放平台

1.1  开启身份认证功能

1.2 使用支付宝开放平台开发助手生成密钥

二、开始写代码

2.1 添加node.js的sdk

import AlipaySdk from "alipay-sdk";
import AlipayFormData from "alipay-sdk/lib/form";

2.2 身份认证初始化

准备接口必要参数,通过 alipay.user.certify.open.initialize 接口调用身份认证初始化服务

/**
   * 身份认证初始化
   * @param cert_name 姓名
   * @param cert_no 证件号
   */
  async certifyOpenInitialize(params: ICertifyOpenInitialize) {
    try {
      //身份信息json对象
      const identityObj = {
        identity_type: "CERT_INFO", //身份类型,必填
        cert_type: "IDENTITY_CARD", //证件类型,必填
        cert_name: params.certName, //真实姓名,必填
        cert_no: params.certNo, //证件号码,必填
      };

      //商户配置json对象
      const merchantConfigObj = {
        return_url:
          "https://test/ss",
      };

      //生成一个随机数作为订单号
      var random_no = "";
      for (
        var i = 0;
        i < 12;
        i++ //j位随机数,用以加在时间戳后面。
      ) {
        random_no += Math.floor(Math.random() * 10);
      }
      random_no = new Date().getTime() + random_no;

      //身份认证初始化服务业务参数数据
      const bizContentObj = {
        outer_order_no: random_no,
        biz_code: "FACE",
        identity_param: identityObj,
        merchant_config: merchantConfigObj,
      };

      const res = await sdk.exec("alipay.user.certify.open.initialize", {
        bizContent: bizContentObj,
      });
      return res;
    } catch (error) {
      console.log(error);
      throw new Error("身份认证初始化错误");
    }
  }

export interface ICertifyOpenInitialize {
  certName: string;
  certNo: string;
}

2.3  生成认证服务请求地址

将生成的 certify_id 作为入参,调用身份认证开始认证服务接口 alipay.user.certify.open.certify

  /**
   * 开始认证
   * @param certifyID 初始化返回的certify_id
   */
  async certifyOpenCertify(params: ICertifyOpenCertify) {
    try {
      let bizContentObj = {
        certify_id: params.certifyID,
      };
      const formData = new AlipayFormData();
      formData.setMethod("get");
      formData.addField("biz_content", bizContentObj);
      const res = await sdk.exec(
        "alipay.user.certify.open.certify",
        {},
        { formData: formData }
      );
      return { url: res };
    } catch (error) {
      console.log(error);
      throw new Error("身份认证错误");
    }
  }
export interface ICertifyOpenCertify {
  certifyID: string;
}

2.4 验证本次认证结果

调用身份认证查询服务接口alipay.user.certify.open.query

  /**
   * 认证查询
   * @param certifyID 初始化返回的certify_id
   */
  async certifyOpenQuery(params: ICertifyOpenCertify) {
    try {
      //设置certify_id
      let bizContentObj = {
        certify_id: params.certifyID,
      };

      const res = await sdk.exec("alipay.user.certify.open.query", {
        bizContent: bizContentObj,
      });
      return res;
    } catch (error) {
      console.log(error);
      throw new Error("身份认证查询错误");
    }
  }
export interface ICertifyOpenCertify {
  certifyID: string;
}

    

2.5 进行业务代码中的认证信息保存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值