跳到主要内容

文件上传接口

请求地址

POST

https://sandbox.j-pay.net/pay/merchant/create

测试账号

商户ID:10010

ApiKey: 7e4nicn14nhyup146dfbi8hpnpus9juz

请求头

字段名称字段值
Agent-Merchant-Id10010

请求参数

参数名称类型是否必填参与签名参数说明
memberidStringYY商户ID
fileFileYN要上传的文件
signStringYN请参考验证签名字段格式

响应参数

参数名称类型参数说明
codeString请求状态
1:成功
0:失败
infoString请求消息
dataInteger返回数据
data.idInteger文件ID

示例

import { md5 } from "js-md5";
import axios from "axios";
import FormData from 'form-data';
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const CONFIG = {
KEY: "7e4nicn14nhyup146dfbi8hpnpus9juz",
AGENT_ID: "10010",
MEMBER_ID: "10304",
UPLOAD_URL: "https://sandbox.j-pay.net/pay/upload/file",
IMAGE_PATH: path.resolve(__dirname, './cashapp.png')
};

function uploadFile() {
if (!fs.existsSync(CONFIG.IMAGE_PATH)) {
throw new Error(`File not found: ${CONFIG.IMAGE_PATH}`);
}

const query = { memberid: CONFIG.MEMBER_ID };
const signData = Object.keys(query)
.sort()
.map(key => `${key}=${query[key]}`);
signData.push(`key=${CONFIG.KEY}`);
const sign = md5(signData.join("&")).toUpperCase();

const formData = new FormData();
formData.append('file', fs.createReadStream(CONFIG.IMAGE_PATH), {
filename: 'cashapp.png',
contentType: 'image/png'
});
formData.append('memberid', CONFIG.MEMBER_ID);
formData.append('sign', sign);

axios.request({
url: CONFIG.UPLOAD_URL,
method: "post",
headers: {
"Agent-Merchant-Id": CONFIG.AGENT_ID,
...formData.getHeaders()
},
data: formData,
}).then((response) => {
console.log("Upload Success:", response.data);
return response.data;
}).catch((error) => {
console.error("Upload Failed:", error);
throw error;
});
}

uploadFile();