可运行示例
接入示例
以下示例展示直接生成成品,并明确传入 mode=final。请通过环境变量注入 API Key。
接口地址
https://gezhao.cn/api/open/gezhao。示例中的 portrait.jpg 替换为你的测试图片。
cURL
export API_KEY=idp_live_xxx
curl --silent --show-error \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: curl-create-0001" \
-F "image=@portrait.jpg" \
-F "mode=final" \
-F "specification_code=one-inch" \
-F 'backgrounds=[{"type":"preset","value":"white"}]' \
-F 'output={"format":"jpeg","dpi":300,"include_layout":true,"layout_size":"6-inch"}' \
"https://gezhao.cn/api/open/gezhao/idphoto/create"JavaScript(Node.js 20+)
import {openAsBlob} from "node:fs";
const form = new FormData();
form.set("image", await openAsBlob("portrait.jpg"), "portrait.jpg");
form.set("mode", "final");
form.set("specification_code", "one-inch");
form.set("backgrounds", JSON.stringify([{type: "preset", value: "white"}]));
form.set("output", JSON.stringify({
format: "jpeg", dpi: 300, include_layout: true, layout_size: "6-inch",
}));
const response = await fetch("https://gezhao.cn/api/open/gezhao/idphoto/create", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Idempotency-Key": "node-create-0001",
},
body: form,
});
const result = await response.json();
if (!response.ok) throw new Error(`${result.error.code}: ${result.error.message}`);
console.log(result.photo_id, result.billing.status);Python(requests)
import json
import os
import requests
with open("portrait.jpg", "rb") as image:
response = requests.post(
"https://gezhao.cn/api/open/gezhao/idphoto/create",
headers={
"Authorization": f"Bearer {os.environ['API_KEY']}",
"Idempotency-Key": "python-create-0001",
},
files={"image": ("portrait.jpg", image, "image/jpeg")},
data={
"mode": "final",
"specification_code": "one-inch",
"backgrounds": json.dumps([{"type": "preset", "value": "white"}]),
"output": json.dumps({
"format": "jpeg", "dpi": 300,
"include_layout": True, "layout_size": "6-inch",
}),
},
timeout=30,
)
result = response.json()
response.raise_for_status()
print(result["photo_id"], result["billing"]["status"])查询证件照
curl --silent --show-error --get \
-H "Authorization: Bearer $API_KEY" \
--data-urlencode "photo_id=$PHOTO_ID" \
"https://gezhao.cn/api/open/gezhao/idphoto/result"保存创建接口返回的 photo_id 并轮询此接口。completed 时直接读取 files;failed 时读取 error 和 quality 并停止轮询。
需要先预览时
把创建请求中的 mode 改为 preview。当 result.status 为 preview_ready 时展示预览;用户确认后再调用:
curl --request POST \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: confirm-preview-0001" \
--url-query "photo_id=$PHOTO_ID" \
"https://gezhao.cn/api/open/gezhao/idphoto/finalize"