阿里云短信服务提示JSON参数不合法解决方法

解决阿里云短信服务json格式错误问题

当时使用模板如下

在这里插入图片描述

问题描述:

后经测试报JSON参数不合法:
{“Message”:“JSON参数不合法”,“RequestId”:“214367F1-5A92-4B20-8F3D-3009E733FE86”,“Code”:“isv.INVALID_JSON_PARAM”}

{
	"Message": "JSON参数不合法",
	"RequestId": "D16E26A2-0FE3-4FF6-8655-BD1756A75210",
	"Code": "isv.INVALID_JSON_PARAM"
}

原因分析:

问题的分析:
后来发现代码json格式转换出错了,在json对象中, 要以其键名为模板中的变量名,对象的值为模板中的值.所以这里需要提供的参数要与阿里云短信服务中的模板变量名的参数名一致且是String类型的;
request.putQueryParameter("TemplateParam","{"code":""+param+""}");

具体代码如下


解决方案:

public static void sendMessage(String phoneNumbers, String param) throws ClientException {
		//填写自己的AccessKey ID 和 AccessKey Secret
		DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>",
				"<accessSecret>");
		IAcsClient client = new DefaultAcsClient(profile);

		CommonRequest request = new CommonRequest();
		request.setSysMethod(MethodType.POST);
		request.setSysDomain("dysmsapi.aliyuncs.com");
		request.setSysVersion("2017-05-25");
		request.setSysAction("SendSms");
		request.putQueryParameter("RegionId", "cn-hangzhou");
		request.putQueryParameter("PhoneNumbers", phoneNumbers);
		request.putQueryParameter("SignName", "云服务");
		//填写自己的模版CODE,我这里是"SMS_205463975"
		request.putQueryParameter("TemplateCode", "SMS_205463975");
		//这里需要将模板变量名参数和传入的参数以json格式填写即可
		request.putQueryParameter("TemplateParam","{\"code\":\""+param+"\"}");
		try {
			CommonResponse response = client.getCommonResponse(request);
			System.out.println(response.getData());
		} catch (ServerException e) {
			e.printStackTrace();
		} catch (ClientException e) {
			e.printStackTrace();
		}
	}
}

//具体测试代码
public class TestSms {
    public static void main(String[] args) throws ClientException {
        SMSUtils.sendMessage("138xxxxxxxx","
        7832");
    }
}
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据你提供的引用内容,报错信息"msg":"Invalid Arguments","code":"40002","sub_msg":"授权码code无效","sub_code":"isv.code-invalid"属于支付宝沙箱环境下的错误。这个错误代码表示授权码无效,可能是由于AppID参数设置错误导致的。要解决这个问题,你可以检查你的AppID是否正确,并确保你的项目正常建立在沙箱环境下。另外,你还可以检查你的授权码是否有效,如果无效的话,可以尝试重新获取一个有效的授权码。如果问题还无法解决,你可以查阅支付宝官方文档或联系支付宝客服寻求进一步的帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [{“code“:“40002“,“msg“:“Invalid Arguments“,“sub_code“:“isv.invalid-app-id“,“sub_msg“:...](https://blog.csdn.net/m0_52453038/article/details/127154120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [解决 [ONNXRuntimeError] : 1 : FAIL Non-zero status code returned ](https://download.csdn.net/download/weixin_51982309/85391263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值