java网站支付宝登录接口_支付宝登录接口解析

/**

* HTTPS形式消息验证地址*/

private static final String HTTPS_VERIFY_URL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify&";

/**

* HTTP形式消息验证地址*/

private static final String HTTP_VERIFY_URL = "http://notify.alipay.com/trade/notify_query.do?";

/**

* 验证消息是否是支付宝发出的合法消息

* @param params 通知返回来的参数数组

* @return 验证结果*/

public static boolean verify(Map params) {

String mysign = getMysign(params);

String responseTxt = "true";

if(params.get("notify_id") != null) {responseTxt = verifyResponse(params.get("notify_id"));}

String sign = "";

if(params.get("sign") != null) {sign = params.get("sign");}

//写日志记录(若要调试,请取消下面两行注释)//String sWord = "responseTxt=" + responseTxt + "\n notify_url_log:sign=" + sign + "&mysign="//+ mysign + "\n notify回来的参数:" + AlipayCore.createLinkString(params);//AlipayCore.logResult(sWord);//验证//responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关//mysign与sign不等,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关 if (mysign.equals(sign) && responseTxt.equals("true")) {

return true;

} else {

return false;

}

}

/**

* 根据反馈回来的信息,生成签名结果

* @param Params 通知返回来的参数数组

* @return 生成的签名结果*/

private static String getMysign(Map Params) {

Map sParaNew = AlipayCore.paraFilter(Params);//过滤空值、sign与sign_type参数 String mysign = AlipayCore.buildMysign(sParaNew);//获得签名结果 return mysign;

}

/**

* 获取远程服务器ATN结果,验证返回URL

* @param notify_id 通知校验ID

* @return 服务器ATN结果

* 验证结果集:

* invalid命令参数不对 出现这个错误,请检测返回处理中partner和key是否为空

* true 返回正确信息

* false 请检查防火墙或者是服务器阻止端口问题以及验证时间是否超过一分钟*/

private static String verifyResponse(String notify_id) {

//获取远程服务器ATN结果,验证是否是支付宝服务器发来的请求 String transport = AlipayConfig.transport;

String partner = AlipayConfig.partner;

String veryfy_url = "";

if (transport.equalsIgnoreCase("https")) {

veryfy_url = HTTPS_VERIFY_URL;

} else {

veryfy_url = HTTP_VERIFY_URL;

}

veryfy_urlveryfy_url = veryfy_url + "partner=" + partner + "¬ify_id=" + notify_id;

return checkUrl(veryfy_url);

}

/**

* 获取远程服务器ATN结果

* @param urlvalue 指定URL路径地址

* @return 服务器ATN结果

* 验证结果集:

* invalid命令参数不对 出现这个错误,请检测返回处理中partner和key是否为空

* true 返回正确信息

* false 请检查防火墙或者是服务器阻止端口问题以及验证时间是否超过一分钟*/

private static String checkUrl(String urlvalue) {

String inputLine = "";

try {

URL url = new URL(urlvalue);

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection

.getInputStream()));

ininputLine = in.readLine().toString();

} catch (Exception e) {

e.printStackTrace();

inputLine = "";

}

return inputLine;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值