easypay.network3/3
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import java.util.HashMap;
import java.util.Map;
import io.github.xiong_it.easypay.PayParams;
/**
* @author 注释者:王教成
* @version 注释版:1.0.0
* Volley网络请求封装
*/
public class VolleyClient implements NetworkClientInterf {
/**
* 实现父类获取方法
* @param payParams 支付参数
* @param callBack 网络客户端接口中回调接口
*/
@Override
public void get(PayParams payParams, final CallBack callBack) {
RequestQueue queue = Volley.newRequestQueue(payParams.getActivity());//创建请求队列,支付参数获取活动为参数
String baseUrl = payParams.getApiUrl();//支付参数获取API统一资源定位器
StringBuffer sburl = new StringBuffer();//创建线程安全字符串变量
sburl.append(baseUrl)//添加API统一资源定位器
.append("?")
.append("pay_way=").append(payParams.getPayWay())//添加支付方式
.append("&")
.append("price=").append(payParams.getGoodsPrice())//添加商品价格
.append("&")
.append("goods_name=").append(payParams.getGoodsName())//添加商品名称
.append("&")
.append("goods_introduction=").append(payParams.getGoodsIntroduction());//添加商品介绍
StringRequest request = new StringRequest(Request.Method.GET, sburl.toString(),
new Response.Listener<String>() {//创建监听器
@Override
public void onResponse(String response) {
callBack.onSuccess(response);//成功回调
}//实现响应回调方法
},
new Response.ErrorListener() {//创建错误监听器
@Override
public void onErrorResponse(VolleyError error) {
callBack.onFailure();//失败回调
}//实现错误响应回调方法
});//创建请求字符串
queue.add(request);//请求队列添加请求字符串
}
/**
* 实现父类邮寄方法
* @param payParams 支付参数
* @param callBack 网络客户端接口中回调接口
*/
@Override
public void post(final PayParams payParams, final CallBack callBack) {
RequestQueue queue = Volley.newRequestQueue(payParams.getActivity());//创建请求队列,支付参数获取活动为参数
StringRequest request = new StringRequest(Request.Method.POST, payParams.getApiUrl(),
new Response.Listener<String>() {//创建监听器
@Override
public void onResponse(String response) {
callBack.onSuccess(response);//成功回调
}//实现响应回调方法
},
new Response.ErrorListener() {//创建错误监听器
@Override
public void onErrorResponse(VolleyError error) {
callBack.onFailure();//失败回调
}//实现错误响应回调方法
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();//创建参数字符串键值对HashMap
params.put("pay_way", payParams.getPayWay().toString());//放入支付方式
params.put("price", String.valueOf(payParams.getGoodsPrice()));//放入商品价格
params.put("goods_name", payParams.getGoodsName());//放入商品名称
params.put("goods_introduction", payParams.getGoodsIntroduction());//放入商品介绍
return params;//返回参数字符串键值对HashMap
}//实现Volley请求类的获取参数方法
};//创建请求字符串
queue.add(request);//请求队列添加请求字符串
}
}
package io.github.xiong_it.easypay.network;
import io.github.xiong_it.easypay.PayParams;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
/**
* @author 注释者:王教成
* @version 注释版:1.0.0
* Retrofit2网络请求简单封装
*/
public class RetrofitClient implements NetworkClientInterf {
/**
* 实现父类获取方法
* @param payParams 支付参数
* @param callBack 网络客户端接口中回调接口
*/
@Override
public void get(PayParams payParams, final CallBack callBack) {
Retrofit retrofit = new Retrofit.Builder()//创建Retrofit构建器
.baseUrl(payParams.getApiUrl())//设置API统一资源定位器
.build();//构建Retrofit
PrePayInfoService service = retrofit.create(PrePayInfoService.class);//Retrofit对象创建预支付信息服务
Call<ResponseBody> call = service.getPrePayInfo(//获取预支付信息
payParams.getPayWay().toString(),//支付方式
String.valueOf(payParams.getGoodsPrice()), payParams.getGoodsName(), payParams.getGoodsIntroduction());//商品价格、名称、介绍
call.enqueue(new Callback<ResponseBody>() {//创建Retrofit中回调接口
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {//如果响应不成功
callBack.onSuccess(response.body().toString());//成功回调
} else {
callBack.onFailure();//如果响应成功,失败回调
}
}//实现响应方法
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
callBack.onFailure();//失败回调
}//实现失败回调方法
});//预支付信息排队
}
/**
* 实现父类邮寄方法
* @param payParams 支付参数
* @param callBack 网络客户端接口中回调接口
*/
@Override
public void post(PayParams payParams, final CallBack callBack) {
Retrofit retrofit = new Retrofit.Builder()//创建Retrofit构建器
.baseUrl(payParams.getApiUrl())//设置API统一资源定位器
.build();//构建Retrofit
PrePayInfoService service = retrofit.create(PrePayInfoService.class);//Retrofit对象创建预支付信息服务
Call<ResponseBody> call = service.postPrePayInfo(//邮寄预支付信息
payParams.getPayWay().toString(),//支付方式
String.valueOf(payParams.getGoodsPrice()), payParams.getGoodsName(), payParams.getGoodsIntroduction());//商品价格、名称、介绍
call.enqueue(new Callback<ResponseBody>() {//创建Retrofit中回调接口
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {//如果响应不成功
callBack.onSuccess(response.body().toString());//成功回调
} else {
callBack.onFailure();//如果响应成功,失败回调
}
}//实现响应方法
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
callBack.onFailure();//失败回调
}//实现失败回调方法
});//支付信息排队
}
}package io.github.xiong_it.easypay.network;
import java.io.IOException;
import io.github.xiong_it.easypay.PayParams;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* @author 注释者:王教成
* @version 注释版:1.0.0
* OkHttp3网络请求简单封装
*/
public class OkHttpClientImpl implements NetworkClientInterf {
/**
* 实现父类获取方法
* @param payParams 支付参数
* @param callBack 网络客户端接口中回调接口
*/
@Override
public void get(PayParams payParams, final CallBack callBack) {
String baseUrl = payParams.getApiUrl();//支付参数获取API统一资源定位器
StringBuffer sburl = new StringBuffer();//创建线程安全字符串变量
// TODO 与服务器开发人员协商接口形式,需要为微信、支付宝、银联等,预支付信息走一个接口,通过pay_way或者其他字段进行区分
// 以下信息除商品详情介绍(goods_introduction)外,均为必须上传字段,key值与服务器人员协商自行定义
sburl.append(baseUrl)//添加API统一资源定位器
.append("?")
.append("pay_way=").append(payParams.getPayWay())//添加支付方式
.append("&")
.append("price=").append(payParams.getGoodsPrice())//添加商品价格
.append("&")
.append("goods_name=").append(payParams.getGoodsName())//添加商品名称
.append("&")
.append("goods_introduction=").append(payParams.getGoodsIntroduction());//添加商品介绍
OkHttpClient mOkHttpClient = new OkHttpClient();//创建OkHttpClient
final Request request = new Request.Builder().url(sburl.toString()).build();//创建请求构建器,设置统一资源定位器,构建请求
mOkHttpClient.newCall(request).enqueue(new Callback() {//创建回调接口
@Override
public void onFailure(Call call, IOException e) {
callBack.onFailure();//失败回调
}//实现失败回调方法
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {//如果响应成功
callBack.onSuccess(response.body().string());//成功回调
} else {
callBack.onFailure();//如果响应失败,失败回调
}
}//实现响应回调方法
});//创建预支付信息排队
}
/**
* 实现父类邮寄方法
* @param payParams 支付参数
* @param callBack 网络客户端接口中回调接口
*/
@Override
public void post(PayParams payParams, final CallBack callBack) {
OkHttpClient mOkHttpClient = new OkHttpClient();//
// TODO 与服务器开发人员协商接口形式,需要为、微信、支付宝、银联等,预支付信息走一个接口,通过pay_way或者其他字段进行区分
// 以下信息除商品详情介绍(goods_introduction)外,均为必须上传字段,key值与服务器人员协商自行定义
RequestBody body = new FormBody.Builder()//创建从体构建器
.add("pay_way", payParams.getPayWay().toString())//添加支付方式
.add("price", String.valueOf(payParams.getGoodsPrice()))//添加商品价格
.add("goods_name", payParams.getGoodsName())//添加商品名称
.add("goods_introduction", payParams.getGoodsIntroduction())//添加商品介绍
.build();//构建请求体
final Request request = new Request.Builder().url(payParams.getApiUrl()).post(body).build();//创建请求构建器,设置统一资源定位器,设置邮寄,构建请求
mOkHttpClient.newCall(request).enqueue(new Callback() {//创建回调接口
@Override
public void onFailure(Call call, IOException e) {
callBack.onFailure();//失败回调
}//实现失败回调方法
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {//如果响应成功
callBack.onSuccess(response.body().string());//成功回调
} else {
callBack.onFailure();//如果响应失败,失败回调
}
}//实现响应回调方法
});//创建预支付信息排队
}
}
- VS2015中调试提示未能正确加载TraceLogPackage包
- Driver Package Installer可以删除吗
- sublime text 3怎么安装package control
- sublime text3 怎么安装package control
- easypay.pay
- easypay.network2/3
- easypay.network1/3