package com.enation.app.shop.component.payment.plugin.cod;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import net.sf.json.JSONObject; import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException; import com.enation.framework.util.EncryptionUtil;
import com.enation.framework.util.JsonMessageUtil; import sun.misc.BASE64Encoder; public class CodUtils {
public static String getToken(){
String getTokenUrl = "https://api.homecredit.ru/oauth/token?grant_type=client_credentials";
HttpClient httpclient=new DefaultHttpClient();
HttpPost request = new HttpPost(getTokenUrl);
request.addHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
String client_credentials = "trade_ease:trade_ease_secret";
sun.misc.BASE64Encoder base64Encode = new BASE64Encoder();
String str = base64Encode.encode(client_credentials.getBytes());
System.out.println(str);
request.addHeader("Authorization","Basic "+str);
HttpResponse response;
try {
response = httpclient.execute(request);
//根据返回码判断请求是否成功
System.out.println(response.getStatusLine().getStatusCode());
if(response.getStatusLine().getStatusCode()==200){
String tokenJson = EntityUtils.toString(response.getEntity());
System.out.println(tokenJson);
JSONObject getToken = JSONObject.fromObject(tokenJson);
String access_token = getToken.getString("access_token");
System.out.println(access_token);
return access_token;
}else {
System.out.println(EntityUtils.toString(response.getEntity()));
return "";
}
} catch (ClientProtocolException e) {
e.printStackTrace();
return "";
} catch (IOException e) {
e.printStackTrace();
return "";
}
} public static void main(String[] args) throws JSONException {
String lastName = "篮球6";
String lastNum = lastName.replaceAll("[^0-9]", "");
String myName = lastName.split(lastNum)[0];
System.out.println(myName);
String uri = EncryptionUtil
.authCode(
"DUdFR1gcGUURFkgEXgJNXwxcQw1eQRpQC10aUQ1IGkIAUF5FBnpYQRIACg1VERhXTVZf",
"DECODE");
System.out.println(uri);
/*org.json.JSONObject json=new org.json.JSONObject();
org.json.JSONArray jsonMembers = new org.json.JSONArray();
org.json.JSONObject member1 = new org.json.JSONObject();
try {
member1.put("loginname", "zhangfan");
member1.put("password", "userpass");
member1.put("email","10371443@qq.com");
member1.put("sign_date", "2007-06-12");
jsonMembers.put(member1);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} org.json.JSONObject member2 = new org.json.JSONObject();
try {
member2.put("loginname", "zf");
member2.put("password", "userpass");
member2.put("email","8223939@qq.com");
member2.put("sign_date", "2008-07-16");
jsonMembers.put(member2);
json.put("users", jsonMembers);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
org.json.JSONArray phone = new org.json.JSONArray();
phone.put("13355555555");
//json.
*/
org.json.JSONObject json=new org.json.JSONObject(); Map <String, String> totalPrice = new HashMap <String, String>();
totalPrice.put("amount", "50");
totalPrice.put("currency", "USD"); org.json.JSONArray items = new org.json.JSONArray();
org.json.JSONObject goods = new org.json.JSONObject();
goods.put("name", "YangXinYuan Mens Fashion Long sleeved shirt");
goods.put("quantity","1");
goods.put("seller","trade_ease_seller");
goods.put("itemPrice",totalPrice);
goods.put("category","TRADE_EASE_TEST_CATEGORY");
goods.put("weight","0.2kg");
items.put(goods); json.put("items",items);
json.put("totalPrice", totalPrice);
json.put("shippingCompanyId", "SPSR");
//System.out.println(json.toString()); List<List> a = new ArrayList();
List b = new ArrayList();
b.add("1");
b.add("1战队");
a.add(b); List c = new ArrayList();
c.add("1");
c.add("2战队");
a.add(c); String listStr = net.sf.json.JSONArray.fromObject(a).toString();
//System.out.println(listStr); List<Map> listMap = new ArrayList(); Map dfdfMap = new HashMap();
dfdfMap.put("名词", "1");
dfdfMap.put("战队id", "123");
dfdfMap.put("战队名字", "1也来"); Map dfdfMap2 = new HashMap();
dfdfMap2.put("名词", "2");
dfdfMap2.put("战队id", "124");
dfdfMap2.put("战队名字", "11也地方"); Map dfdfMap3 = new HashMap();
dfdfMap3.put("名词", "3");
dfdfMap3.put("战队id", "125");
dfdfMap3.put("战队名字", "1fff地方"); listMap.add(dfdfMap);
listMap.add(dfdfMap2);
listMap.add(dfdfMap3);
String listStr2 = net.sf.json.JSONArray.fromObject(listMap).toString();
System.out.println(listStr2);
//a.add("df"); } }

HTTP 验证

验证采用 HTTP Basic 机制,即 HTTP Header(头)里加一个字段(Key/Value对):

Authorization: Basic base64_auth_string

其中 base64_auth_string 的生成算法为:base64(appKey:masterSecret)

即,对 appKey 加上冒号,加上 masterSecret 拼装起来的字符串,再做 base64 转换。

HTTP Basic 机制的更多相关文章

  1. RESTFUL API 安全设计指南

    RESTFUL API 安全设计指南 xxlegend · 2015/10/18 15:08 0x01 REST API 简介 REST的全称是REpresentational State Trans ...

  2. REST API 安全设计指南

    0x01 REST API 简介 REST的全称是REpresentational State Transfer,表示表述性无状态传输,无需session,所以每次请求都得带上身份认证信息.rest是 ...

  3. Nginx详解以及LNMP的搭建

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  4. nginx常用模块

    Nginx模块介绍 核心模块:core module 标准模块:stand modules HTTP modules: Standard HTTP modules Optional HTTP modu ...

  5. nginx配置2

    第四节 nginx 配置文件 1 keepalive_timeout   65;  设定保存长久连接时长 0代表禁止, 若不设置默认是75s 2keepalive_requests   nu;  在一 ...

  6. (转)nginx 常用模块整理

    原文:http://blog.51cto.com/arm2012/1977090 1. 性能相关配置 worker_processes number | auto: worker进程的数量:通常应该为 ...

  7. nginx 模块介绍

    nginx模块在编译文件下的odjs目录下 cat 查看ngx_modules.c文件 可以看到一些基本extern模块 常用标准模块 1. 性能相关配置 worker_processes numbe ...

  8. Nginx模块详解

    Nginx模块介绍 核心模块:core module 标准模块: HTTP modules: Standard HTTP modules Optional HTTP modules Mail modu ...

  9. nginx全局配置和性能优化

    nginx目录结构和命令 1.ls /apps/nginx/:         html是测试页,sbin是主程序 2.ls /apps/nginx/sbin/:  nginx 只有一个程序文件 3. ...

随机推荐

  1. JSONArray.fromObject不执行且不报错问题的解决

    今天在写javaweb工程的时候需要向前台传json格式的数据,用到了json-lib-2.4-jdk15.jar等一系列包,然而却出现如下状况: CityBean是一个javaBean,我们看到,控 ...

  2. ES6笔记04-class的基本语法

    JavaScript 语言中,生成实例对象的传统方法是通过构造函数. ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板.通过class关键字,可以定义类. clas ...

  3. React路由-基础篇

    React-Router-DOM ReactRouter网址, 安装 -npmjs找到react-router-dom -yarn add react-router-dom 基本使用方法 1.创建一个 ...

  4. 关于对GitHub的使用

    什么是GitHub? GitHub是版本控制和协作的代码托管平台.它可以让你在其他人在任何地方一起工作. 本文主要向您介绍GitHub essentials,如存储库,分支,提交和合并请求.将您创建自 ...

  5. Java NIO 教程

    Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.本系列教程将有助于你学习和理解Java NIO. Java NIO提供了与 ...

  6. 虚拟机无法ping通物理机的解决方案

    环境:Windows7下安装虚拟机,虚拟机上装有Ubuntu16.04的server版系统. 1.打开Windows防火墙,在打开或关闭Windows防火墙中 关闭Windows的防火墙. 2.禁用服 ...

  7. Linux基础知识与命令1(su passwd)

    一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...

  8. TouTiao开源项目 分析笔记10 实现通用普通文章片段页面

    1.RxJava的Observable数据操作符总结 1.1.Map操作符 Map操作符对原始Observable发射的没一项数据应用一个你选择的函数, 然后返回一个发射这些结果的Observable ...

  9. Linux下添加桌面快捷方式

    这里用Ubuntu下BurpSuite举例 sudo vim /home/user/Desktop/burpsuite.desktop //burpsuite随意起名,系统会系动创建文件 文件写入 # ...

  10. MySQL之查询性能优化(四)

    优化特定类型的查询 COUNT()的作用 COUNT()是一个特殊函数,有两个非常不同的作用:它可以统计某个列值的数量,也可以统计行数.在统计列值时要求列值是非空的(不统计NULL). 如果在COUN ...