commit
85d98cf9b7
@ -0,0 +1,20 @@ |
|||||||
|
package com.gitee.sop.storyweb.controller.param; |
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ArrayElementParam { |
||||||
|
|
||||||
|
@ApiModelProperty(value = "名字", required = true, example = "白雪公主", position = 1) |
||||||
|
private String name; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "数组", required = true, dataType = "List", example = "白雪公主", position = 2) |
||||||
|
private List<StoryParam> list; |
||||||
|
|
||||||
|
} |
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,5 @@ |
|||||||
# SDK for C++ |
# SDK for C++ |
||||||
|
|
||||||
|
本工程使用`CLion`进行开发,前提安装jsoncpp(Mac安装方式:`brew install jsoncpp`) |
||||||
|
|
||||||
使用方式见:main.cpp |
使用方式见:main.cpp |
File diff suppressed because it is too large
Load Diff
@ -1,156 +0,0 @@ |
|||||||
/*******************************************************************************
|
|
||||||
* Project: neb |
|
||||||
* @file CJsonObject.hpp |
|
||||||
* @brief Json |
|
||||||
* @author bwarliao |
|
||||||
* @date: 2014-7-16 |
|
||||||
* @note |
|
||||||
* Modify history: |
|
||||||
******************************************************************************/ |
|
||||||
|
|
||||||
#ifndef CJSONOBJECT_HPP_ |
|
||||||
#define CJSONOBJECT_HPP_ |
|
||||||
|
|
||||||
#include <stdio.h> |
|
||||||
#include <stddef.h> |
|
||||||
#include <stdlib.h> |
|
||||||
#include <errno.h> |
|
||||||
#include <limits.h> |
|
||||||
#include <math.h> |
|
||||||
#include <string> |
|
||||||
#include <map> |
|
||||||
#include <list> |
|
||||||
#ifdef __cplusplus |
|
||||||
extern "C" { |
|
||||||
#endif |
|
||||||
#include "cJSON.h" |
|
||||||
#ifdef __cplusplus |
|
||||||
} |
|
||||||
#endif |
|
||||||
|
|
||||||
|
|
||||||
namespace neb |
|
||||||
{ |
|
||||||
|
|
||||||
class CJsonObject |
|
||||||
{ |
|
||||||
public: // method of ordinary json object or json array
|
|
||||||
CJsonObject(); |
|
||||||
CJsonObject(const std::string& strJson); |
|
||||||
CJsonObject(const CJsonObject* pJsonObject); |
|
||||||
CJsonObject(const CJsonObject& oJsonObject); |
|
||||||
virtual ~CJsonObject(); |
|
||||||
|
|
||||||
CJsonObject& operator=(const CJsonObject& oJsonObject); |
|
||||||
bool operator==(const CJsonObject& oJsonObject) const; |
|
||||||
bool Parse(const std::string& strJson); |
|
||||||
void Clear(); |
|
||||||
bool IsEmpty() const; |
|
||||||
bool IsArray() const; |
|
||||||
std::string ToString() const; |
|
||||||
std::string ToFormattedString() const; |
|
||||||
const std::string& GetErrMsg() const |
|
||||||
{ |
|
||||||
return(m_strErrMsg); |
|
||||||
} |
|
||||||
|
|
||||||
public: // method of ordinary json object
|
|
||||||
bool AddEmptySubObject(const std::string& strKey); |
|
||||||
bool AddEmptySubArray(const std::string& strKey); |
|
||||||
bool GetKey(std::string& strKey); |
|
||||||
void ResetTraversing(); |
|
||||||
CJsonObject& operator[](const std::string& strKey); |
|
||||||
std::string operator()(const std::string& strKey) const; |
|
||||||
bool Get(const std::string& strKey, CJsonObject& oJsonObject) const; |
|
||||||
bool Get(const std::string& strKey, std::string& strValue) const; |
|
||||||
bool Get(const std::string& strKey, int32& iValue) const; |
|
||||||
bool Get(const std::string& strKey, uint32& uiValue) const; |
|
||||||
bool Get(const std::string& strKey, int64& llValue) const; |
|
||||||
bool Get(const std::string& strKey, uint64& ullValue) const; |
|
||||||
bool Get(const std::string& strKey, bool& bValue) const; |
|
||||||
bool Get(const std::string& strKey, float& fValue) const; |
|
||||||
bool Get(const std::string& strKey, double& dValue) const; |
|
||||||
bool IsNull(const std::string& strKey) const; |
|
||||||
bool Add(const std::string& strKey, const CJsonObject& oJsonObject); |
|
||||||
bool Add(const std::string& strKey, const std::string& strValue); |
|
||||||
bool Add(const std::string& strKey, int32 iValue); |
|
||||||
bool Add(const std::string& strKey, uint32 uiValue); |
|
||||||
bool Add(const std::string& strKey, int64 llValue); |
|
||||||
bool Add(const std::string& strKey, uint64 ullValue); |
|
||||||
bool Add(const std::string& strKey, bool bValue, bool bValueAgain); |
|
||||||
bool Add(const std::string& strKey, float fValue); |
|
||||||
bool Add(const std::string& strKey, double dValue); |
|
||||||
bool AddNull(const std::string& strKey); // add null like this: "key":null
|
|
||||||
bool Delete(const std::string& strKey); |
|
||||||
bool Replace(const std::string& strKey, const CJsonObject& oJsonObject); |
|
||||||
bool Replace(const std::string& strKey, const std::string& strValue); |
|
||||||
bool Replace(const std::string& strKey, int32 iValue); |
|
||||||
bool Replace(const std::string& strKey, uint32 uiValue); |
|
||||||
bool Replace(const std::string& strKey, int64 llValue); |
|
||||||
bool Replace(const std::string& strKey, uint64 ullValue); |
|
||||||
bool Replace(const std::string& strKey, bool bValue, bool bValueAgain); |
|
||||||
bool Replace(const std::string& strKey, float fValue); |
|
||||||
bool Replace(const std::string& strKey, double dValue); |
|
||||||
bool ReplaceWithNull(const std::string& strKey); // replace value with null
|
|
||||||
|
|
||||||
public: // method of json array
|
|
||||||
int GetArraySize(); |
|
||||||
CJsonObject& operator[](unsigned int uiWhich); |
|
||||||
std::string operator()(unsigned int uiWhich) const; |
|
||||||
bool Get(int iWhich, CJsonObject& oJsonObject) const; |
|
||||||
bool Get(int iWhich, std::string& strValue) const; |
|
||||||
bool Get(int iWhich, int32& iValue) const; |
|
||||||
bool Get(int iWhich, uint32& uiValue) const; |
|
||||||
bool Get(int iWhich, int64& llValue) const; |
|
||||||
bool Get(int iWhich, uint64& ullValue) const; |
|
||||||
bool Get(int iWhich, bool& bValue) const; |
|
||||||
bool Get(int iWhich, float& fValue) const; |
|
||||||
bool Get(int iWhich, double& dValue) const; |
|
||||||
bool IsNull(int iWhich) const; |
|
||||||
bool Add(const CJsonObject& oJsonObject); |
|
||||||
bool Add(const std::string& strValue); |
|
||||||
bool Add(int32 iValue); |
|
||||||
bool Add(uint32 uiValue); |
|
||||||
bool Add(int64 llValue); |
|
||||||
bool Add(uint64 ullValue); |
|
||||||
bool Add(int iAnywhere, bool bValue); |
|
||||||
bool Add(float fValue); |
|
||||||
bool Add(double dValue); |
|
||||||
bool AddNull(); // add a null value
|
|
||||||
bool AddAsFirst(const CJsonObject& oJsonObject); |
|
||||||
bool AddAsFirst(const std::string& strValue); |
|
||||||
bool AddAsFirst(int32 iValue); |
|
||||||
bool AddAsFirst(uint32 uiValue); |
|
||||||
bool AddAsFirst(int64 llValue); |
|
||||||
bool AddAsFirst(uint64 ullValue); |
|
||||||
bool AddAsFirst(int iAnywhere, bool bValue); |
|
||||||
bool AddAsFirst(float fValue); |
|
||||||
bool AddAsFirst(double dValue); |
|
||||||
bool AddNullAsFirst(); // add a null value
|
|
||||||
bool Delete(int iWhich); |
|
||||||
bool Replace(int iWhich, const CJsonObject& oJsonObject); |
|
||||||
bool Replace(int iWhich, const std::string& strValue); |
|
||||||
bool Replace(int iWhich, int32 iValue); |
|
||||||
bool Replace(int iWhich, uint32 uiValue); |
|
||||||
bool Replace(int iWhich, int64 llValue); |
|
||||||
bool Replace(int iWhich, uint64 ullValue); |
|
||||||
bool Replace(int iWhich, bool bValue, bool bValueAgain); |
|
||||||
bool Replace(int iWhich, float fValue); |
|
||||||
bool Replace(int iWhich, double dValue); |
|
||||||
bool ReplaceWithNull(int iWhich); // replace with a null value
|
|
||||||
|
|
||||||
private: |
|
||||||
CJsonObject(cJSON* pJsonData); |
|
||||||
|
|
||||||
private: |
|
||||||
cJSON* m_pJsonData; |
|
||||||
cJSON* m_pExternJsonDataRef; |
|
||||||
cJSON* m_pKeyTravers; |
|
||||||
std::string m_strErrMsg; |
|
||||||
std::map<unsigned int, CJsonObject*> m_mapJsonArrayRef; |
|
||||||
std::map<std::string, CJsonObject*> m_mapJsonObjectRef; |
|
||||||
}; |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
#endif /* CJSONHELPER_HPP_ */ |
|
File diff suppressed because it is too large
Load Diff
@ -1,151 +0,0 @@ |
|||||||
/*
|
|
||||||
Copyright (c) 2009 Dave Gamble |
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|
||||||
of this software and associated documentation files (the "Software"), to deal |
|
||||||
in the Software without restriction, including without limitation the rights |
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
||||||
copies of the Software, and to permit persons to whom the Software is |
|
||||||
furnished to do so, subject to the following conditions: |
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in |
|
||||||
all copies or substantial portions of the Software. |
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
||||||
THE SOFTWARE. |
|
||||||
*/ |
|
||||||
|
|
||||||
#ifndef cJSON__h |
|
||||||
#define cJSON__h |
|
||||||
|
|
||||||
#include <stdint.h> |
|
||||||
|
|
||||||
typedef int int32; |
|
||||||
typedef unsigned int uint32; |
|
||||||
#ifndef _WIN32 |
|
||||||
#if __WORDSIZE == 64 |
|
||||||
typedef long int64; |
|
||||||
typedef unsigned long uint64; |
|
||||||
#endif |
|
||||||
#else |
|
||||||
typedef long long int64; |
|
||||||
typedef unsigned long long uint64; |
|
||||||
#endif |
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus |
|
||||||
extern "C" |
|
||||||
{ |
|
||||||
#endif |
|
||||||
|
|
||||||
/* cJSON Types: */ |
|
||||||
#define cJSON_False 0 |
|
||||||
#define cJSON_True 1 |
|
||||||
#define cJSON_NULL 2 |
|
||||||
#define cJSON_Int 3 |
|
||||||
#define cJSON_Double 4 |
|
||||||
#define cJSON_String 5 |
|
||||||
#define cJSON_Array 6 |
|
||||||
#define cJSON_Object 7 |
|
||||||
|
|
||||||
#define cJSON_IsReference 256 |
|
||||||
|
|
||||||
/* The cJSON structure: */ |
|
||||||
typedef struct cJSON |
|
||||||
{ |
|
||||||
struct cJSON *next, *prev; /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */ |
|
||||||
struct cJSON *child; /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ |
|
||||||
|
|
||||||
int type; /* The type of the item, as above. */ |
|
||||||
|
|
||||||
char *valuestring; /* The item's string, if type==cJSON_String */ |
|
||||||
int64 valueint; /* The item's number, if type==cJSON_Number */ |
|
||||||
double valuedouble; /* The item's number, if type==cJSON_Number */ |
|
||||||
int sign; /* sign of valueint, 1(unsigned), -1(signed) */ |
|
||||||
|
|
||||||
char *string; /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ |
|
||||||
} cJSON; |
|
||||||
|
|
||||||
typedef struct cJSON_Hooks |
|
||||||
{ |
|
||||||
void *(*malloc_fn)(size_t sz); |
|
||||||
void (*free_fn)(void *ptr); |
|
||||||
} cJSON_Hooks; |
|
||||||
|
|
||||||
/* Supply malloc, realloc and free functions to cJSON */ |
|
||||||
extern void cJSON_InitHooks(cJSON_Hooks* hooks); |
|
||||||
|
|
||||||
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */ |
|
||||||
extern cJSON *cJSON_Parse(const char *value); |
|
||||||
/* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */ |
|
||||||
extern char *cJSON_Print(cJSON *item); |
|
||||||
/* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */ |
|
||||||
extern char *cJSON_PrintUnformatted(cJSON *item); |
|
||||||
/* Delete a cJSON entity and all subentities. */ |
|
||||||
extern void cJSON_Delete(cJSON *c); |
|
||||||
|
|
||||||
/* Returns the number of items in an array (or object). */ |
|
||||||
extern int cJSON_GetArraySize(cJSON *array); |
|
||||||
/* Retrieve item number "item" from array "array". Returns NULL if unsuccessful. */ |
|
||||||
extern cJSON *cJSON_GetArrayItem(cJSON *array, int item); |
|
||||||
/* Get item "string" from object. Case insensitive. */ |
|
||||||
extern cJSON *cJSON_GetObjectItem(cJSON *object, const char *string); |
|
||||||
|
|
||||||
/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */ |
|
||||||
extern const char *cJSON_GetErrorPtr(); |
|
||||||
|
|
||||||
/* These calls create a cJSON item of the appropriate type. */ |
|
||||||
extern cJSON *cJSON_CreateNull(); |
|
||||||
extern cJSON *cJSON_CreateTrue(); |
|
||||||
extern cJSON *cJSON_CreateFalse(); |
|
||||||
extern cJSON *cJSON_CreateBool(int b); |
|
||||||
extern cJSON *cJSON_CreateDouble(double num, int sign); |
|
||||||
extern cJSON *cJSON_CreateInt(uint64 num, int sign); |
|
||||||
extern cJSON *cJSON_CreateString(const char *string); |
|
||||||
extern cJSON *cJSON_CreateArray(); |
|
||||||
extern cJSON *cJSON_CreateObject(); |
|
||||||
|
|
||||||
/* These utilities create an Array of count items. */ |
|
||||||
extern cJSON *cJSON_CreateIntArray(int *numbers, int sign, int count); |
|
||||||
extern cJSON *cJSON_CreateFloatArray(float *numbers, int count); |
|
||||||
extern cJSON *cJSON_CreateDoubleArray(double *numbers, int count); |
|
||||||
extern cJSON *cJSON_CreateStringArray(const char **strings, int count); |
|
||||||
|
|
||||||
/* Append item to the specified array/object. */ |
|
||||||
extern void cJSON_AddItemToArray(cJSON *array, cJSON *item); |
|
||||||
extern void cJSON_AddItemToArrayHead(cJSON *array, cJSON *item); /* add by Bwar on 2015-01-28 */ |
|
||||||
extern void cJSON_AddItemToObject(cJSON *object, const char *string, |
|
||||||
cJSON *item); |
|
||||||
/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */ |
|
||||||
extern void cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); |
|
||||||
extern void cJSON_AddItemReferenceToObject(cJSON *object, const char *string, |
|
||||||
cJSON *item); |
|
||||||
|
|
||||||
/* Remove/Detatch items from Arrays/Objects. */ |
|
||||||
extern cJSON *cJSON_DetachItemFromArray(cJSON *array, int which); |
|
||||||
extern void cJSON_DeleteItemFromArray(cJSON *array, int which); |
|
||||||
extern cJSON *cJSON_DetachItemFromObject(cJSON *object, const char *string); |
|
||||||
extern void cJSON_DeleteItemFromObject(cJSON *object, const char *string); |
|
||||||
|
|
||||||
/* Update array items. */ |
|
||||||
extern void cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem); |
|
||||||
extern void cJSON_ReplaceItemInObject(cJSON *object, const char *string, |
|
||||||
cJSON *newitem); |
|
||||||
|
|
||||||
#define cJSON_AddNullToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateNull()) |
|
||||||
#define cJSON_AddTrueToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateTrue()) |
|
||||||
#define cJSON_AddFalseToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateFalse()) |
|
||||||
#define cJSON_AddNumberToObject(object,name,n) cJSON_AddItemToObject(object, name, cJSON_CreateNumber(n)) |
|
||||||
#define cJSON_AddStringToObject(object,name,s) cJSON_AddItemToObject(object, name, cJSON_CreateString(s)) |
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus |
|
||||||
} |
|
||||||
#endif |
|
||||||
|
|
||||||
#endif |
|
@ -0,0 +1,63 @@ |
|||||||
|
package com.gitee.sop.test; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.gitee.sop.test.alipay.AlipaySignature; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* 接收数组 |
||||||
|
*/ |
||||||
|
public class ArrayTest extends TestBase { |
||||||
|
|
||||||
|
String url = "http://localhost:8081"; |
||||||
|
String appId = "2019032617262200001"; |
||||||
|
// 平台提供的私钥
|
||||||
|
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCXJv1pQFqWNA/++OYEV7WYXwexZK/J8LY1OWlP9X0T6wHFOvxNKRvMkJ5544SbgsJpVcvRDPrcxmhPbi/sAhdO4x2PiPKIz9Yni2OtYCCeaiE056B+e1O2jXoLeXbfi9fPivJZkxH/tb4xfLkH3bA8ZAQnQsoXA0SguykMRZntF0TndUfvDrLqwhlR8r5iRdZLB6F8o8qXH6UPDfNEnf/K8wX5T4EB1b8x8QJ7Ua4GcIUqeUxGHdQpzNbJdaQvoi06lgccmL+PHzminkFYON7alj1CjDN833j7QMHdPtS9l7B67fOU/p2LAAkPMtoVBfxQt9aFj7B8rEhGCz02iJIBAgMBAAECggEARqOuIpY0v6WtJBfmR3lGIOOokLrhfJrGTLF8CiZMQha+SRJ7/wOLPlsH9SbjPlopyViTXCuYwbzn2tdABigkBHYXxpDV6CJZjzmRZ+FY3S/0POlTFElGojYUJ3CooWiVfyUMhdg5vSuOq0oCny53woFrf32zPHYGiKdvU5Djku1onbDU0Lw8w+5tguuEZ76kZ/lUcccGy5978FFmYpzY/65RHCpvLiLqYyWTtaNT1aQ/9pw4jX9HO9NfdJ9gYFK8r/2f36ZE4hxluAfeOXQfRC/WhPmiw/ReUhxPznG/WgKaa/OaRtAx3inbQ+JuCND7uuKeRe4osP2jLPHPP6AUwQKBgQDUNu3BkLoKaimjGOjCTAwtp71g1oo+k5/uEInAo7lyEwpV0EuUMwLA/HCqUgR4K9pyYV+Oyb8d6f0+Hz0BMD92I2pqlXrD7xV2WzDvyXM3s63NvorRooKcyfd9i6ccMjAyTR2qfLkxv0hlbBbsPHz4BbU63xhTJp3Ghi0/ey/1HQKBgQC2VsgqC6ykfSidZUNLmQZe3J0p/Qf9VLkfrQ+xaHapOs6AzDU2H2osuysqXTLJHsGfrwVaTs00ER2z8ljTJPBUtNtOLrwNRlvgdnzyVAKHfOgDBGwJgiwpeE9voB1oAV/mXqSaUWNnuwlOIhvQEBwekqNyWvhLqC7nCAIhj3yvNQKBgQCqYbeec56LAhWP903Zwcj9VvG7sESqXUhIkUqoOkuIBTWFFIm54QLTA1tJxDQGb98heoCIWf5x/A3xNI98RsqNBX5JON6qNWjb7/dobitti3t99v/ptDp9u8JTMC7penoryLKK0Ty3bkan95Kn9SC42YxaSghzqkt+uvfVQgiNGQKBgGxU6P2aDAt6VNwWosHSe+d2WWXt8IZBhO9d6dn0f7ORvcjmCqNKTNGgrkewMZEuVcliueJquR47IROdY8qmwqcBAN7Vg2K7r7CPlTKAWTRYMJxCT1Hi5gwJb+CZF3+IeYqsJk2NF2s0w5WJTE70k1BSvQsfIzAIDz2yE1oPHvwVAoGAA6e+xQkVH4fMEph55RJIZ5goI4Y76BSvt2N5OKZKd4HtaV+eIhM3SDsVYRLIm9ZquJHMiZQGyUGnsvrKL6AAVNK7eQZCRDk9KQz+0GKOGqku0nOZjUbAu6A2/vtXAaAuFSFx1rUQVVjFulLexkXR3KcztL1Qu2k5pB6Si0K/uwQ="; |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testGet() throws Exception { |
||||||
|
|
||||||
|
// 公共请求参数
|
||||||
|
Map<String, String> params = new HashMap<String, String>(); |
||||||
|
params.put("app_id", appId); |
||||||
|
params.put("method", "story.listparam"); |
||||||
|
params.put("format", "json"); |
||||||
|
params.put("charset", "utf-8"); |
||||||
|
params.put("sign_type", "RSA2"); |
||||||
|
params.put("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
||||||
|
params.put("version", "1.0"); |
||||||
|
|
||||||
|
// 业务参数
|
||||||
|
String bizContent = "{\n" + |
||||||
|
" \"name\": \"jim\",\n" + |
||||||
|
" \"list\": [{\n" + |
||||||
|
" \"age\": 22,\n" + |
||||||
|
" \"name\": \"jim\",\n" + |
||||||
|
" \"address\": \"xx\"\n" + |
||||||
|
" }]\n" + |
||||||
|
"}"; |
||||||
|
|
||||||
|
params.put("biz_content", JSON.toJSONString(JSON.parseObject(bizContent))); |
||||||
|
String content = AlipaySignature.getSignContent(params); |
||||||
|
String sign = AlipaySignature.rsa256Sign(content, privateKey, "utf-8"); |
||||||
|
params.put("sign", sign); |
||||||
|
|
||||||
|
System.out.println("----------- 请求信息 -----------"); |
||||||
|
System.out.println("请求参数:" + buildParamQuery(params)); |
||||||
|
System.out.println("商户秘钥:" + privateKey); |
||||||
|
System.out.println("待签名内容:" + content); |
||||||
|
System.out.println("签名(sign):" + sign); |
||||||
|
System.out.println("URL参数:" + buildUrlQuery(params)); |
||||||
|
|
||||||
|
System.out.println("----------- 返回结果 -----------"); |
||||||
|
String responseData = postJson(url, params);// 发送请求
|
||||||
|
System.out.println(responseData); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue