sdk/qywx-sdk/linux/java_sdk/sdkdemo.java

135 lines
6.2 KiB
Java
Raw Normal View History

2025-08-18 09:05:41 +00:00
import com.tencent.wework.Finance;
import java.io.*;
//10000 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//10001 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//10002 <09><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>ʧ<EFBFBD><CAA7>
//10003 ϵͳʧ<CDB3><CAA7>
//10004 <09><>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ʧ<EFBFBD><CAA7>
//10005 fileid<69><64><EFBFBD><EFBFBD>
//10006 <09><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
//10007 <20>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ܰ汾<DCB0><E6B1BE>˽Կ<CBBD><D4BF><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>´<EFBFBD><C2B4><EFBFBD>˽Կ<CBBD><D4BF>
//10008 <20><><EFBFBD><EFBFBD>encrypt_key<65><79><EFBFBD><EFBFBD>
//10009 ip<69>Ƿ<EFBFBD>
//10010 <20><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD>
public class sdkdemo {
public static void main(String[] args){
//seq <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><E6B5B5>Ϣ<EFBFBD><CFA2><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD><C5A1>״<EFBFBD><D7B4><EFBFBD>ȡʱseq<65><71>0<EFBFBD><30>sdk<64><EFBFBD><E1B7B5><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
//limit <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>ΧΪ1~1000
//proxy<78><79>passwdΪ<64><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sdk<64>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sdk<64><6B><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"https://qyapi.weixin.qq.com"<22><>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>curl<72><6C><EFBFBD><EFBFBD>"https://qyapi.weixin.qq.com"<22><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD>sdk<64><6B>
//timeout Ϊ<><CEAA>ȡ<EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>ʱʱ<CAB1><EFBFBD><E4A3AC>λΪ<CEBB><EFBFBD><EBA3AC><EFBFBD>鳬ʱʱ<CAB1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ5s<35><73>
//sdkfileid ý<><C3BD><EFBFBD>ļ<EFBFBD>id<69><64><EFBFBD>ӽ<EFBFBD><D3BD>ܺ<EFBFBD><DCBA>ĻỰ<C4BB><EFBFBD>еõ<D0B5>
//savefile ý<><C3BD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
//encrypt_key <20><>ȡ<EFBFBD><EFBFBD><EFBFBD><E6B5B5><EFBFBD>ص<EFBFBD>encrypt_random_key<65><79>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ΢<D2B5>Ź<EFBFBD><C5B9><EFBFBD>̨<EFBFBD><CCA8>rsa<73><61>Կ<EFBFBD><D4BF>Ӧ<EFBFBD><D3A6>˽Կ<CBBD><D4BF><EFBFBD>ܺ<EFBFBD><DCBA>õ<EFBFBD>encrypt_key<65><79>
//encrypt_chat_msg <20><>ȡ<EFBFBD><EFBFBD><EFBFBD><E6B5B5><EFBFBD>ص<EFBFBD>encrypt_chat_msg
if (args.length < 2) {
System.out.println("./sdktools 1(chatmsg) 2(mediadata) 3(decryptdata)\n");
System.out.println("./sdktools 1 seq limit proxy passwd timeout\n");
System.out.println("./sdktools 2 fileid proxy passwd timeout savefile\n");
System.out.println("./sdktools 3 encrypt_key encrypt_chat_msg\n");
return;
}
long ret = 0;
//ʹ<><CAB9>sdkǰ<6B><C7B0>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>sdk<64><6B><EFBFBD><EFBFBD>һֱʹ<D6B1>á<EFBFBD>
//<2F><><EFBFBD><EFBFBD><E8B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sdk<64><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>̳߳<DFB3><CCB3><EFBFBD>һ<EFBFBD><D2BB>sdkʵ<6B><CAB5><EFBFBD><EFBFBD>
//<2F><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ҵ<EFBFBD><D2B5>corpid<69><64>secrectkey<65><79>
long sdk = Finance.NewSdk();
ret = Finance.Init(sdk, "wwd08c8e7c775ab44d", "zJ6k0naVVQ--gt9PUSSEvs03zW_nlDVmjLCTOTAfrew");
if(ret != 0){
Finance.DestroySdk(sdk);
System.out.println("init sdk err ret " + ret);
return;
}
if (args[0].equals("1")) {
//<2F><>ȡ<EFBFBD><EFBFBD>
int seq = Integer.parseInt(args[1]);
int limit = Integer.parseInt(args[2]);
String proxy = args[3];
String passwd = args[4];
int timeout = Integer.parseInt(args[5]);
//ÿ<><C3BF>ʹ<EFBFBD><CAB9>GetChatData<74><61>ȡ<EFBFBD>浵ǰ<E6B5B5><C7B0>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>NewSlice<63><65>ȡһ<C8A1><D2BB>slice<63><65><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>slice<63><65><EFBFBD><EFBFBD><EFBFBD>ݺ󣬻<DDBA><F3A3ACBB><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>FreeSlice<63>ͷš<CDB7>
long slice = Finance.NewSlice();
ret = Finance.GetChatData(sdk, seq, limit, proxy, passwd, timeout, slice);
if (ret != 0) {
System.out.println("getchatdata ret " + ret);
Finance.FreeSlice(slice);
return;
}
System.out.println("getchatdata :" + Finance.GetContentFromSlice(slice));
Finance.FreeSlice(slice);
}
else if (args[0].equals("2")) {
//<2F><>ȡý<C8A1><C3BD><EFBFBD>ļ<EFBFBD>
String sdkfileid = args[1];
String proxy = args[2];
String passwd = args[3];
int timeout = Integer.parseInt(args[4]);
String savefile = args[5];
//ý<><C3BD><EFBFBD>ļ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sizeΪ512k<32><6B><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>512k<32><6B><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ҫ<EFBFBD><D2AA>Ƭ<EFBFBD><C6AC>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>δ<EFBFBD><CEB4>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sdk<64><6B>IsMediaDataFinish<73>ӿڻ᷵<DABB><E1B7B5>0<EFBFBD><30>ͬʱͨ<CAB1><CDA8>GetOutIndexBuf<75>ӿڷ<D3BF><DAB7><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>GetMediaData<74><61>indexbuf<75><66>
//indexbufһ<66><D2BB><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Range:bytes=524288-1048575<37><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>Ǵ<EFBFBD>524288<38><38>1048575<37>ķ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>״<EFBFBD><D7B4><EFBFBD>ȡ<EFBFBD><C8A1>д<EFBFBD><D0B4>indexbufΪ<66><CEAA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭʱֱ<CAB1><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴη<CFB4><CEB7>ص<EFBFBD>indexbuf<75><66><EFBFBD>ɡ<EFBFBD>
String indexbuf = "";
while(true){
//ÿ<><C3BF>ʹ<EFBFBD><CAB9>GetMediaData<74><61>ȡ<EFBFBD>浵ǰ<E6B5B5><C7B0>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>NewMediaData<74><61>ȡһ<C8A1><D2BB>media_data<74><61><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>media_data<74><61><EFBFBD><EFBFBD><EFBFBD>ݺ󣬻<DDBA><F3A3ACBB><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>FreeMediaData<74>ͷš<CDB7>
long media_data = Finance.NewMediaData();
ret = Finance.GetMediaData(sdk, indexbuf, sdkfileid, proxy, passwd, timeout, media_data);
if(ret!=0){
System.out.println("getmediadata ret:" + ret);
Finance.FreeMediaData(media_data);
return;
}
System.out.printf("getmediadata outindex len:%d, data_len:%d, is_finis:%d\n",Finance.GetIndexLen(media_data),Finance.GetDataLen(media_data), Finance.IsMediaDataFinish(media_data));
try {
//<2F><><EFBFBD><EFBFBD>512k<32><6B><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC>ȡ<EFBFBD><C8A1><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ҫʹ<D2AA><CAB9>׷<EFBFBD><D7B7>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
FileOutputStream outputStream = new FileOutputStream(new File(savefile), true);
outputStream.write(Finance.GetData(media_data));
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
if(Finance.IsMediaDataFinish(media_data) == 1)
{
//<2F>Ѿ<EFBFBD><D1BE><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƭ
Finance.FreeMediaData(media_data);
break;
}
else
{
//<2F><>ȡ<EFBFBD>´<EFBFBD><C2B4><EFBFBD>ȡ<EFBFBD><C8A1>Ҫʹ<D2AA>õ<EFBFBD>indexbuf
indexbuf = Finance.GetOutIndexBuf(media_data);
Finance.FreeMediaData(media_data);
}
}
}
else if (args[0].equals("3")) {
//<2F><><EFBFBD>ܻỰ<DCBB><EFBFBD><E6B5B5><EFBFBD><EFBFBD>
//sdk<64><6B><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>rsa˽Կ<CBBD><D4BF><EFBFBD><EFBFBD>֤<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><E6B5B5><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>Լ<EFBFBD><D4BC>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD>ܡ<EFBFBD>
//<2F>˴<EFBFBD><CBB4><EFBFBD>Ҫ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>rsa˽Կ<CBBD><D4BF><EFBFBD><EFBFBD>encrypt_random_key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊencrypt_key<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sdk<64><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>encrypt_chat_msg<73><67>ȡ<EFBFBD><EFBFBD><EFBFBD><E6B5B5><EFBFBD>ġ<EFBFBD>
String encrypt_key = args[1];
String encrypt_chat_msg = args[2];
//ÿ<><C3BF>ʹ<EFBFBD><CAB9>DecryptData<74><61><EFBFBD>ܻỰ<DCBB>浵ǰ<E6B5B5><C7B0>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>NewSlice<63><65>ȡһ<C8A1><D2BB>slice<63><65><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>slice<63><65><EFBFBD><EFBFBD><EFBFBD>ݺ󣬻<DDBA><F3A3ACBB><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>FreeSlice<63>ͷš<CDB7>
long msg = Finance.NewSlice();
ret = Finance.DecryptData(sdk, encrypt_key, encrypt_chat_msg, msg);
if (ret != 0) {
System.out.println("getchatdata ret " + ret);
Finance.FreeSlice(msg);
return;
}
System.out.println("decrypt ret:" + ret + " msg:" + Finance.GetContentFromSlice(msg));
Finance.FreeSlice(msg);
}
else {
System.out.println("wrong args " + args[0]);
}
Finance.DestroySdk(sdk);
}
}