视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

關(guān)閉
公眾號(hào)二維碼

# 二、人臉識(shí)別文檔

# 人臉識(shí)別場(chǎng)景說明

人臉識(shí)別通過識(shí)別用戶人臉,獲取用戶信息(openid)。

此功能常用于商戶會(huì)員、商品推薦等場(chǎng)景, 此流程無法用于支付。

FACEID-ONCE為直接啟動(dòng)人臉識(shí)別流程。

# 接入過程

# 人臉識(shí)別FACEID-ONCE模式時(shí)序圖

sequenceDiagram participant A as 商戶APP participant B as 微信人臉sdk participant D as 商戶server participant C as 微信支付后臺(tái)API Note over A, C: Step 1:程序啟動(dòng)時(shí)初始化 A ->> B: 1. 程序啟動(dòng)時(shí)初始化 initWxpayface B -->> A: 返回初始化結(jié)果 Note over A, C: Step 2:獲取數(shù)據(jù)、SDK調(diào)用憑證 A ->> B: 2. 獲取數(shù)據(jù) getWxpayfaceRawdata B -->> A: 返回rawdata A ->> D: 3. 獲取人臉SDK調(diào)用憑證 D ->> C: get_wxpayface_authinfo(rawdata) C -->> D: 返回authinfo D -->> A: 返回authinfo Note over A, C: Step 3:獲取用戶信息,返回人臉識(shí)別結(jié)果 A ->> B: 4. 獲取用戶信息 getWxpayfaceUserInfo(authinfo) activate B B ->> B: 調(diào)用攝像頭, 啟動(dòng)人臉識(shí)別 B ->> B: 完成人臉檢測(cè)/識(shí)別 B -->> A: 返回人臉識(shí)別結(jié)果(openid,nickname) Note over A, C: 執(zhí)行商戶側(cè)的邏輯 A ->> B: 5. 釋放資源 releaseWxpayface

# SDK調(diào)用

# 使用方式

  1. SDK需要集成到商戶應(yīng)用,提供的SDK為C動(dòng)態(tài)鏈接庫dll,請(qǐng)注意采用cdecl調(diào)用約定
  2. 業(yè)務(wù)?C/C++技術(shù)棧可通過編譯鏈接或者LoadLibrary的?式加載dll,并執(zhí)行相關(guān)函數(shù),C#等.NET平臺(tái)的技術(shù)棧請(qǐng)參照下面C#導(dǎo)入DLL聲明部分實(shí)現(xiàn)調(diào)用
  3. 運(yùn)行時(shí),需要先啟動(dòng)WxpayFaceService刷臉服務(wù),然后商戶應(yīng)用使用SDK中的接口調(diào)起刷臉功能

注意點(diǎn):

  1. 關(guān)于函數(shù)中?參、出參的數(shù)據(jù)格式, 均采?JSON字符串,編碼為UTF-8。
  2. 調(diào)用wxpayCallFaceService成功后,務(wù)必調(diào)用wxpayReleaseResponse來釋放響應(yīng)結(jié)果

# 入口函數(shù)原型

/**
 * 調(diào)用人臉服務(wù)
 * @param reqBuf 	請(qǐng)求參數(shù)(JSON字符串)
 * @param reqSize 	請(qǐng)求參數(shù)長(zhǎng)度
 * @param pRespBuf	用來接收響應(yīng)結(jié)果(JSON字符串)的char**指針
 * @param pRespSize 用來接收響應(yīng)結(jié)果長(zhǎng)度的unsigned int*指針
 * @return 如果成功返回0,失敗則返回非0
 */
extern "C" int wxpayCallFaceService(const char *reqBuf, unsigned int reqSize, char **pRespBuf, unsigned int *pRespSize);


/**
 * 釋放人臉服務(wù)的響應(yīng)字符串,調(diào)用wxpayCallFaceService成功后務(wù)必調(diào)用此函數(shù)釋放內(nèi)存
 * @param pRespBuf	指向響應(yīng)結(jié)果(JSON字符串)的指針
 */
extern "C" void wxpayReleaseResponse(char **pRespBuf);

# C# 導(dǎo)入DLL聲明

// 聲明
[DllImport("WxpayFaceSDK.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public extern static int wxpayCallFaceService(IntPtr reqBuf, UInt32 reqSize, out IntPtr pRespBuf, out UInt32 pRespSize);

[DllImport("WxpayFaceSDK.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public extern static int wxpayReleaseResponse(out IntPtr pRespBuf);

// 封裝
public static int CallWxpayFaceService(string req, ref string resp)
{
    byte[] reqBuf = Encoding.UTF8.GetBytes(req);
    IntPtr reqPtr = Marshal.AllocHGlobal(reqBuf.Length);
    Marshal.Copy(reqBuf, 0, reqPtr, reqBuf.Length);

    IntPtr respPtr;
    UInt32 respSize;

    int ret = wxpayCallFaceService(reqPtr, (UInt32)reqBuf.Length, out respPtr, out respSize);
    if (ret == 0)
    {
        byte[] respBuf = new byte[respSize];
        Marshal.Copy(respPtr, respBuf, 0, (int)respSize);
        resp = Encoding.UTF8.GetString(respBuf);
        wxpayReleaseResponse(out respPtr);
    }
    Marshal.FreeHGlobal(reqPtr);
    return ret;
}

# 請(qǐng)求參數(shù)Req和響應(yīng)結(jié)果Resp構(gòu)成

reqresp均為JSON結(jié)構(gòu)的字符串

req包含:公共請(qǐng)求字段 + 命令專有請(qǐng)求字段

resp 包含:公共響應(yīng)字段 + 命令專有響應(yīng)字段

# 請(qǐng)求公共字段

參數(shù) 必填 類型 說明
cmd string 命令字,即各接口名:
initWxpayface
getWxpayfaceRawdata
getWxpayfaceUserInfo
releaseWxpayface
version string 版本號(hào), 固定填寫1
now int 取當(dāng)前時(shí)間的10位unix時(shí)間戮。 例如:1540901425

# 請(qǐng)求公共字段

參數(shù) 必填 類型 說明
return_code string 錯(cuò)誤碼。公共定義見 公共錯(cuò)誤碼
return_msg string(128) 對(duì)錯(cuò)誤碼的描述

# 公共錯(cuò)誤碼

參數(shù) 錯(cuò)誤碼 類型 說明
return_code SUCCESS string 接口成功
return_code ERROR string 接口失敗
return_code PARAM_ERROR string 參數(shù)錯(cuò)誤
return_code SYSTEMERROR string 接口返回錯(cuò)誤

# 接口調(diào)用流程

# 1、程序啟動(dòng)時(shí)初始化

# 程序啟動(dòng)時(shí)初始化initWxpayface

接口作用:對(duì)人臉SDK進(jìn)行初始化

支持版本: 1.12及以上

# 請(qǐng)求參數(shù)

除公共參數(shù)外,下方參數(shù)中的代理設(shè)置可用于配置刷臉走商戶內(nèi)部代理。若不需要,則不用填寫代理參數(shù)。

參數(shù) 必填 類型 說明
ip string HTTP代理IP
port string HTTP代理端口, 須為數(shù)字
user string HTTP代理的用戶名
passwd string HTTP代理的密碼
proxy_type int 0:none;
1:HttpTunnel;
2:Socks5;
3:Http
v1.18及以上支持
camera_rotation int 對(duì)攝像頭畫面進(jìn)行旋轉(zhuǎn),1為+90度,2為180度,3為-90度,如需使用該參數(shù)請(qǐng)聯(lián)系微信支付確認(rèn)設(shè)備實(shí)際效果符合規(guī)范。1.18版本以上支持

# 返回參數(shù)

參數(shù) 必填 類型 說明
return_code string 錯(cuò)誤碼。公共定義見 公共錯(cuò)誤碼
return_msg string(128) 對(duì)錯(cuò)誤碼的描述

# 請(qǐng)求示例

// initWxpayface
// 初始化,默認(rèn)無代理
const char* req = "{\"cmd\":\"initWxpayface\",\"version\":\"1\",\"now\":1540901425}";
// 初始化并配置代理
const char* req = "{\"cmd\":\"initWxpayface\",\"version\":\"1\",\"now\":1540901425,\"ip\":\"10.123.10.11\",\"port\":\"8356\",\"user\":\"username\",\"passwd\":\"password\"}";
char *resp;
unsigned int len;
int ret = wxpayCallFaceService(req, strlen(req), &resp, &len);

if (ret == 0) {
    printf("resp: %s len: %u\n", resp, len);
    wxpayReleaseResponse(&resp);
}
/*
 * resp: {"return_code":"SUCCESS","return_msg":"SUCCESS"} len: 48
 */

# 2、獲取數(shù)據(jù)

# 獲取數(shù)據(jù)getWxpayfaceRawdata

接口作用:獲取rawdata數(shù)據(jù)

支持版本: 1.12及以上

# 請(qǐng)求參數(shù)

僅公共參數(shù)

# 返回參數(shù)

參數(shù) 必填 類型 說明
return_code string 錯(cuò)誤碼。公共定義見 公共錯(cuò)誤碼
return_msg string(128) 對(duì)錯(cuò)誤碼的描述
rawdata S string(2048) 初始化數(shù)據(jù)。用于接口調(diào)用獲取authinfo, 參見: 3、獲取調(diào)用憑證

# 調(diào)用示例

// getWxpayfaceRawdata
const char* req = "{\"cmd\":\"getWxpayfaceRawdata\",\"version\":\"1\",\"now\":1540901425}";
char *resp;
unsigned int len;
int ret = wxpayCallFaceService(req, strlen(req), &resp, &len);

if (ret == 0) {
    printf("resp: %s len: %u\n", resp, len);
    wxpayReleaseResponse(&resp);
}
/*
 * resp: {"rawdata":"0CSmor/Pp4vC7WE5CsJxet4Sg+D24C8eJxAMjjkBEl58hDLmofPunD+OX8v7JQyxUFmimUb9ai9cuPmGXC87MfStCOGaK/Fjb77DzF7nJgpwQhl8bdprPWKx6h04ZzPRQBlE6DAgcylr3CFSisWpMSUUmA9MtHAKD8fhzFeTEAgj0NK49DjIFZXczfZRgj8qUTRrajdJtO6gZMqlRgSwM83MP8xPG2lCO33nA5HsSMy/vh5ET5O3ubj+wpfMuD1fUj3HBy3YXxxGqFKjJV6dRwuMmAXnaTk0P0u3LSOWO7wiA6En/JgwVZvf9zkcCzq9OyJFrc+8QY6bQeuPWCe4E73n397jaD5fu8GqyokUlO/XytuYP2qcNWAol9vBpf3u2xWt/MobKjJcsDwsCxGFxtjWATRyU0fB9atI8GKGt9zxwWbMd0m6gleWWVGVOHxodNKJbWFP4rRKvPjG0nntZzX4SJ0q/7zevKzYQhU+F+q+ePvvgjKAcxnI5Jhaz/khkffQLw4YAaR7GuLZhHYeFPYEvzOXVk89+dJ/M7s1jZK4dtFa75U1Et9vn2bYtfourPpL3PA9oPPVVu2gPuq/S+WmBG6hCp0lq+/3P4png82cgLq6MNPhSwAq5YRqxlrHbfE3qk0qr/vXXSMbIOhfLWnKFdOyRv+3ohdQOC/8sdHbbSDcyQSprYZ+JREhz0W3qPKlHxlsbvSrpGNj9D4VxL4UXTnloq5KdwZoGSeBgvpNS5NPhXuU6u0cVMufUriKsxptftFu68cDzVv3hdu+1bYy/P9vffwSl01U2uJiTGErHqVMuILTNL==","return_code":"SUCCESS","return_msg":"SUCCESS"} len: 885
 */

# 3、獲取調(diào)用憑證

# 獲取調(diào)用憑證get_wxpayface_authinfo(rawdata)(獲取調(diào)用憑證)

接口作用:獲取調(diào)用憑證

接口地址:https://payapp.weixin.qq.com/face/get_wxpayface_authinfo

# 請(qǐng)求參數(shù)

除公共參數(shù)外,下方參數(shù)的代理設(shè)置可用于配置刷臉走商戶內(nèi)部代理。若不需要,則不用填寫。

參數(shù) 必填 類型 說明
store_id string(32) 門店編號(hào), 由商戶定義, 各門店唯一。
store_name string(128) 門店名稱,由商戶定義。(可用于展示)
device_id string(32) 終端設(shè)備編號(hào),由商戶定義。
attach string 附加字段。字段格式使用Json
rawdata string(2048) 初始化數(shù)據(jù)。由微信人臉SDK的接口返回。
獲取方式參見:
[獲取數(shù)據(jù) getWxpayfaceRawdata](#獲取數(shù)據(jù) getWxpayfaceRawdata)
[獲取數(shù)據(jù) getWxpayfaceRawdata](#獲取數(shù)據(jù) getWxpayfaceRawdata)
appid string(32) 商戶號(hào)綁定的公眾號(hào)/小程序 appid
mch_id string(32) 商戶號(hào)
sub_appid string(32) 子商戶綁定的公眾號(hào)/小程序 appid(服務(wù)商模式)
sub_mch_id string(32) 子商戶號(hào)(服務(wù)商模式)
now int 取當(dāng)前時(shí)間,10位unix時(shí)間戳。 例如:1239878956
version string 版本號(hào)。固定為1
sign_type string 簽名類型,目前支持HMAC-SHA256和MD5,默認(rèn)為MD5
nonce_str string(32) 隨機(jī)字符串,不長(zhǎng)于32位
sign string 參數(shù)簽名。詳見微信支付簽名算法

# 返回參數(shù)

參數(shù) 必填 類型 說明
return_code string(16) 錯(cuò)誤碼。公共定義見 公共錯(cuò)誤碼
return_msg string(128) 對(duì)錯(cuò)誤碼的描述
authinfo string(4096) SDK調(diào)用憑證。用于調(diào)用SDK的人臉識(shí)別接口。
參見[人臉識(shí)別 getWxpayfaceCode](#人臉識(shí)別 getWxpayfaceCode)
expires_in int authinfo的有效時(shí)間, 單位秒。 例如: 3600
在有效時(shí)間內(nèi), 對(duì)于同一臺(tái)終端設(shè)備,相同的參數(shù)的前提下(如:相同的公眾號(hào)、商戶號(hào)、 門店編號(hào)等),可以用同一個(gè)authinfo,多次調(diào)用SDK的getWxpayfaceCode接口。
nonce_str string(32) 隨機(jī)字符串
sign string(32) 響應(yīng)結(jié)果簽名
appid string(32) 公眾號(hào)
mch_id string(32) 商戶號(hào)
sub_appid string(32) 子商戶公眾賬號(hào)ID(服務(wù)商模式)
sub_mch_id string(32) 子商戶號(hào)(服務(wù)商模式)

# 請(qǐng)求示例

<return_code>SUCCESS</return_code>
<return_msg>請(qǐng)求成功</return_msg>
<nonce_str>Tivppi4UXAbgLxk8e1Sij76YdowOFFii</nonce_str>
<sign>PL0EUID6A7ICWNKHCSMQC0UIXOYNSE5B</sign>
<appid>wx31fdaErqR31</appid>
<mch_id>12345689</mch_id>
<authinfo>q3OPhFtQBf6KZGqmZhejKCRy5K/ch0kwS11YSsEj9XmUGqcsT2QPHt0Oa7xaCMCoSZTWMmShCo4dOiO5tU+OJEsvSxXzn5m3Nkh747tinNlbpJmVq1zOPj+FJNndkzanxoiAddO8p1EfrmUhJs/aNf0pDfrPoVfkAapK+ZY6blwyaDQ9bB7+KkZq29kObsXOZ3thg+bxP4RAqC0oxNS4JiyP0uA1Euzxtkc9lCTebloFied8stILrMehUKukeMGkZ1SzTyc8/HFHApzHahNPX6yD8ttzYnhe+IRMFJgpuTlIvEOYZUxenPXE1A5clrPvOBeJDszX/OvZl4fpYWPpXAcVQlw+gfYhblt+rT6ALMsD73w/rT4NRriQEEraC4Pfb5yua4qAqv4TVo04</authinfo>
<expires_in>7200</expires_in>

建議:返回的接口憑證authinfo,可以在expires_in指定的有效期內(nèi),同一臺(tái)機(jī)具上重復(fù)使用

注意:這是一個(gè)后端調(diào)用接口,請(qǐng)?jiān)讷@取數(shù)據(jù)(getWxpayfaceRawdata)成功后獲取調(diào)用憑證get_wxpayface_authinfo(rawdata)

# 4、獲取用戶信息

# 獲取用戶信息getWxpayfaceUserInfo(authinfo)

接口作用:通過人臉識(shí)別獲取用戶信息,包括openid,昵稱、unionid等信息。

**適用范圍:**適用于會(huì)員、推薦等場(chǎng)景。

支持版本: 1.24及以上

# 請(qǐng)求參數(shù)

除公共參數(shù)外,

參數(shù) 必填 類型 說明
appid string 商戶號(hào)綁定的公眾號(hào)/小程序 appid
mch_id string 商戶號(hào)
sub_appid string(32) 子商戶綁定的公眾號(hào)/小程序 appid(可不填)
sub_mch_id string(32) 子商戶號(hào)(非服務(wù)商模式不填)
store_id string 門店編號(hào)
face_authtype string 人臉識(shí)別模式。可選值:
FACEID-ONCE: 人臉識(shí)別(單次模式)
authinfo string 調(diào)用憑證。獲取方式參見: [獲取調(diào)用憑證后端接口](### 獲取調(diào)用憑證后端接口)
ask_unionid string 是否請(qǐng)求獲取union_id。可選值 [0:不獲取;1:獲取]
screen_index string 指定刷臉界面顯示的屏幕編號(hào)。編號(hào)1為主屏幕,其余屏幕按系統(tǒng)設(shè)置中的順序從2開始編號(hào),常用場(chǎng)景舉例:雙屏機(jī)器上傳"2"即可顯示在副屏上。如果不填寫則默認(rèn)顯示在主屏幕。
use_window_nofocus string 設(shè)置刷臉窗口以無焦點(diǎn)方式啟動(dòng),可選值:"1",無焦點(diǎn)啟動(dòng)窗口。1.26版本以上支持該參數(shù)

# 返回參數(shù)

參數(shù) 必填 類型 說明
return_code string 錯(cuò)誤碼。公共定義見 公共錯(cuò)誤碼
return_msg string(128) 對(duì)錯(cuò)誤碼的描述
openid string openid
sub_openid string 子商戶號(hào)下的openid(服務(wù)商模式)
nickname string 微信昵稱
token string 用于獲取union_id,獲取union_id文檔
unionid_code string 獲取union_id 返回碼。公共定義見公共錯(cuò)誤碼
unionid_msg string 獲取union_id 返回信息,對(duì)unionid_code返回碼的描述

# 請(qǐng)求示例

// getWxpayfaceUserInfo
const char* req = "{\"cmd\":\"getWxpayfaceUserInfo\",\"appid\":\"wx2b029c08a6232582\",\"mch_id\":\"1900008001\",\"store_id\":\"DemoStore\",\"face_authtype\":\"FACEID-ONCE\",\"authinfo\":\"YNrFgiTFMBgJhON9HbkOeL/oYeg2CqpbsYAIuzB7i3iio2YGuZhFMe+H5G7yO+wpHHRiAKGo335ZWWeckRK/5uSF+o9oXsdyroMoTD9uhP+L8hzuqWxz464DsaWpL1xc0Rn4Smaxv9/pvCL8PfYxG7L2J1zhqAH0Wrsi3h2QMHA5/jsTfXqNz8nvBvjSq3hmTazytkafVaaxFKf3ZDHqWq+9DSepqsGIUPzHWxFZQ/k378H7d/PpPXpKKYSp6oPwixFXujZLDgDzjIE4//ORHnFmr9Dr8LF2y4Iqb2NcZnKBNPFuiqhcOOk70BTY2ggr6M6tsZEJkIIWH0XnrDH6pmcJntxQDAdaEvm1tZoCX7vUK0rkFJ1axeMZXVskfueaCaCMTAjjfGjTHBaMWTvrBP85tteZ+aXwvcWkVg9g/VMyo3wzV1PlU1iYNhaMfoieiXhJnRpOwqVKseIINBzXqEzg3PHTB3p/AFZ2gxcwOKJa0wbxM5QWzeplPTkPgJhM7SfDSet/ZOMb7MCzoB4MT0P3dYGf3s3/LaGZ2gqMU0MOCs85kb3jNIsUpm0v3xd4+juQsfdUX2309Kh2HGEgPcUWLUMEdj5AfJLh9x/8wbx7aEwTTpBP6KgtZrjBobOZnxT5CyVbR0s4uUIqQlz9zuiOI+V80hAbBqg88G/YHUJKgr7Hv9Fwqj6P4aTytWPrrKkG3HkO\",\"version\":\"1\",\"now\":1598426587}";
char *resp;
unsigned int len;
int ret = wxpayCallFaceService(req, strlen(req), &resp, &len);

if (ret == 0) {
    printf("resp: %s len: %u\n", resp, len);
    wxpayReleaseResponse(&resp);
}
/*
 * resp: {"return_code":"SUCCESS","return_msg":"SUCCESS","openid":"xxx","nickname":"xxxx"} len: 48
 */

注意:請(qǐng)?jiān)讷@取調(diào)用憑證get_wxpayface_authinfo(rawdata)成功后調(diào)用獲取用戶信息getWxpayfaceUserInfo(authinfo)

# 5、釋放資源

# 釋放資源releaseWxpayface

接口作用:釋放人臉服務(wù)。

接口使用規(guī)范:

  1. 聚合支付情況下:每次啟動(dòng)刷臉都需要initWxpayface,刷臉結(jié)束后需要調(diào)用releaseWxpayface(釋放攝像頭供其他刷臉支付平臺(tái)調(diào)用);
  2. 非聚合支付情況下:首次刷臉需要initWxpayface,刷臉結(jié)束后不需要調(diào)用releaseWxpayface,否則下次刷臉需要重新initWxpayface,影響啟動(dòng)耗時(shí);初始化之后第二次刷臉可以直接調(diào)用getWxpayfaceCode啟動(dòng)刷臉(在保證authinfo有效的情況下)。

支持版本: 1.12及以上

# 請(qǐng)求參數(shù)

僅公共參數(shù)

# 返回參數(shù)

參數(shù) 必填 類型 說明
return_code string 錯(cuò)誤碼。公共定義見 公共錯(cuò)誤碼
return_msg string(128) 對(duì)錯(cuò)誤碼的描述

# 請(qǐng)求示例

// releaseWxpayface
const char* req = "{\"cmd\":\"releaseWxpayface\",\"version\":\"1\",\"now\":1540901425}";
char *resp;
unsigned int len;
int ret = wxpayCallFaceService(req, strlen(req), &resp, &len);

if (ret == 0) {
    printf("resp: %s len: %u\n", resp, len);
    wxpayReleaseResponse(&resp);
}
/*
 * resp: {"return_code":"SUCCESS","return_msg":"SUCCESS"} len: 48
 */
上次更新: 11/14/2022, 3:01:17 PM