| demo名称 | 开发语言 | 备注 | 下载 |
|---|---|---|---|
| smiledemo.zip | Java | 不带账密,需要服务商填写账密后再运行。 | 点击下载 |
public class MerchantInfo{
public final static String appKey1 = "请输入商家/服务商的应用私钥";
public final static String appId1 = "请输入appid";
}mZoloz.getMetaInfo(mockInfo(), new MetaInfoCallback() {
// 解析getMetaInfo返回的结果,如果成功,则请求商家服务端调用人脸初始化接口
@Override
public void onMetaInfo(String metaInfo, Map<String, Object> extInfo) {
Log.d(TAG, "meta info is:" + metaInfo);
//获取metainfo成功
if (TextUtils.isEmpty(metaInfo)) {
Log.e(TAG, "metainfo is null");
} else {
Log.i("zolozTime", "smiletopay init zimid begin");
// 将metaInfo发送给商家服务端,由商家服务端发起刷脸初始化OpenAPI的调用
// 参考刷脸初始化
}
}
/**
* mock数据,真实商家请填写真实信息.
*/
private Map mockInfo() {
Map merchantInfo = new HashMap();
//以下信息请根据真实情况填写
//商户 PID
merchantInfo.put(ZolozConstants.KEY_MERCHANT_INFO_MERCHANT_ID, merchantId);
//服务商 PID
merchantInfo.put(ZolozConstants.KEY_MERCHANT_INFO_PARTNER_ID, partnerId);
//添加刷脸付功能的appid
merchantInfo.put("appId", appId);
//机具编号,便于关联商家管理的机具
merchantInfo.put(ZolozConstants.KEY_MERCHANT_INFO_DEVICE_NUM, "TEST_ZOLOZ_TEST");
return merchantInfo;
}| 参数名称 | 参数说明 | 必填 |
|---|---|---|
| merchantId | 签约商家的 PID。以 2088 开头 | 是 |
| partnerId | 服务商的 PID。对于自用型商家,填写签约商家的 PID,和 merchantId 保持一致。 | 否 |
| appId | 支付宝分配给开发者的应用 ID,和当面付请求的 appid 保持一致。 | 否 |
| deviceNum | 商户机具终端编号,和当面付请求的 terminal_id 保持一致。 | 是 |
| storeCode | 商户门店编号,和当面付请求的 store_id 保持一致。 | 否 |
| alipayStoreCode | 支付宝内部门店编号,和当面付请求中的 alipay_store_id 保持一致。 | 否 |
| 参数名称 | 参数说明 |
|---|---|
| apdidToken | 设备指纹。 |
| appName | 应用名称。 |
| appVersion | 应用版本。 |
| bioMetaInfo | 生物信息。 |
| osVersion | 系统版本。 |
| machineInfo | 设备硬件相关信息。 |
| merchantInfo | 商户相关信息。 |
| remoteLogID | 刷脸调用的事务 ID。 |
| extInfo | 扩展参数,用于商家服务端传入信息。 |
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.ZolozAuthenticationSmilepayApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ZolozAuthenticationSmilepayApiInitialize {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
ZolozAuthenticationSmilepayApi api = new ZolozAuthenticationSmilepayApi();
ZolozAuthenticationSmilepayInitializeModel data = new ZolozAuthenticationSmilepayInitializeModel();
data.setOsVersion("7.1.1");
FaceMachineInfo machineInfo = new FaceMachineInfo();
machineInfo.setCameraDriveVer("1.0");
machineInfo.setMachineModel("T2");
machineInfo.setCameraName("AstraP1");
machineInfo.setCameraVer("1.0");
machineInfo.setMachineCode("WyDAz27pfsEDANGk7QnmxZlv");
machineInfo.setMachineVer("7.1.1");
machineInfo.setCameraModel("AstraP1");
machineInfo.setExt("扩展信息");
data.setMachineInfo(machineInfo);
data.setDeviceType("android");
data.setBioMetaInfo("3.13.0:12419136,6");
data.setDeviceModel("T2");
data.setRemoteLogId("bcf71c4290f288f4421ee9d49eedbf1e2840ba");
FaceExtParams extInfo = new FaceExtParams();
extInfo.setBizType("1");
data.setExtInfo(extInfo);
data.setAppName("com.alipay.zoloz.smile");
data.setZimVer("1.0.0");
FaceMerchantInfo merchantInfo = new FaceMerchantInfo();
merchantInfo.setWifiname("Alipay-Test");
merchantInfo.setAreaCode("华中");
merchantInfo.setDeviceNum("TEST_ZOLOZ_TEST");
merchantInfo.setBrandCode("KFC");
merchantInfo.setStoreCode("TEST");
merchantInfo.setGeo("120.10785,30.26708");
merchantInfo.setMerchantId("2088302068579978");
merchantInfo.setDeviceMac("1c:aa:07:b0:e7:af");
merchantInfo.setPartnerId("2088302068579978");
merchantInfo.setWifimac("1c:aa:07:b0:e7:af");
merchantInfo.setGroup("group1");
data.setMerchantInfo(merchantInfo);
data.setAppVersion("3.7.0.201809191618");
data.setBaseVer("7.1.1");
data.setApdidToken("40Kl9e97cQcMJka5gfT0arVPq7GTaR6yE5f73mj8zqBW9eOPZQEAAA==");
try {
ZolozAuthenticationSmilepayInitializeResponseModel response = api.initialize(data);
} catch (ApiException e) {
ZolozAuthenticationSmilepayInitializeDefaultResponse errorObject = (ZolozAuthenticationSmilepayInitializeDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}| 参数 | 是否必填 | 描述 |
|---|---|---|
| camera_drive_ver | 可选 | 摄像头驱动版本号 |
| camera_model | 可选 | 摄像头型号 |
| camera_name | 可选 | 摄像头名称 |
| camera_ver | 可选 | 摄像头版本号 |
| machine_code | 可选 | 机具编码 |
| machine_model | 可选 | 机具型号 |
| machine_ver | 可选 | 机具版本号 |
| ext | 可选 | 扩展信息 |
| area_code | 可选 | 区域编码 |
|---|---|---|
| brand_code | 可选 | 品牌编码 |
| device_mac | 可选 | 机具Mac地址 |
| group | 可选 | 机具分组编码 |
| device_num | 可选 | 机具编码 |
| geo | 可选 | 经纬度 |
| merchant_id | 可选 | 商户ID |
| partner_id | 可选 | 服务商 ID |
| store_code | 可选 | 门店编码 |
| wifimac | 可选 | WI-FI Mac地址 |
| wifiname | 可选 | WI-FI 名称 |
| 键值 | 描述 |
|---|---|
| code | 统一对外错误码,如果刷脸认证成功返回,则为 CODE_SUCCESS。详情可查看下文表格 常见错误码(code)。 |
| msg | 返回消息。 |
| ret_code_sub | 刷脸返回码。 |
| ret_message_sub | 刷脸返回消息。 |
| zim_id | 刷脸调用的标识,将作为下一步 verify 接口的入參。 |
| zim_init_client_data | 刷脸的下发协议数据,将作为下一步 verify 接口的入參。 |
| 统一对外错误码 | 错误描述 | 解决方案 |
|---|---|---|
| SYSTEM_ERROR | 系统繁忙 | 请检查下网络环境 |
| INVALID_PARAMETER | 参数有误 | 请检查参数是否有误 |
| BIZ_ERROR | 业务异常 | 请检查业务参数准确性 |