Commit 735d8804 by Java-聂换换

huanqiuuiju通道支付

parent 1e875c5e
...@@ -4,40 +4,112 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,40 +4,112 @@ import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient; import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient; import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.request.AlipayTradeCreateRequest;
import com.alipay.api.request.AlipayTradeFastpayRefundQueryRequest; import com.alipay.api.request.AlipayTradeFastpayRefundQueryRequest;
import com.alipay.api.request.AlipayTradeOrderSettleRequest; import com.alipay.api.request.AlipayTradeOrderSettleRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.response.AlipayTradeCreateResponse;
import com.alipay.api.response.AlipayTradeFastpayRefundQueryResponse; import com.alipay.api.response.AlipayTradeFastpayRefundQueryResponse;
import com.alipay.api.response.AlipayTradeOrderSettleResponse; import com.alipay.api.response.AlipayTradeOrderSettleResponse;
import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.config.Global;
import com.thinkgem.jeesite.common.mapper.JsonMapper;
import com.thinkgem.jeesite.common.utils.IdGen;
import com.thinkgem.jeesite.modules.pay.juhezhong.utils.MakeOrderNum;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
import static com.alipay.api.AlipayConstants.APP_ID;
import static com.alipay.api.AlipayConstants.CHARSET;
public class AlipayService { public class AlipayService {
public JSONObject alipay() throws AlipayApiException { public JSONObject alipay(JSONObject dto) throws AlipayApiException {
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",Global.getConfig("alipay.appid"),Global.getConfig("alipay.private.key"),"json","UTF-8",Global.getConfig("alipay.public.key"),"RSA2"); AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",Global.getConfig("alipay.appid"),Global.getConfig("alipay.private.key"),"json","UTF-8",Global.getConfig("alipay.public.key"),"RSA2");
AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest(); AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
request.setBizContent("{" + request.setBizContent("{" +
"\"out_request_no\":\"20160727001\"," + "\"out_trade_no\":\"20150320010101001\"," +
"\"trade_no\":\"2014030411001007850000672009\"," + "\"seller_id\":\"2088102146225135\"," +
" \"royalty_parameters\":[{" + "\"total_amount\":88.88," +
" \"trans_out\":\"2088101126765726\"," + "\"discountable_amount\":8.88," +
"\"trans_in\":\"2088101126708402\"," + "\"subject\":\"Iphone616G\"," +
"\"amount\":0.1," + "\"body\":\"Iphone616G\"," +
"\"amount_percentage\":100," + "\"buyer_id\":\"2088102146225135\"," +
"\"desc\":\"分账给2088101126708402\"" + "\"goods_detail\":[{" +
" }]," + "\"goods_id\":\"apple-01\"," +
"\"operator_id\":\"A0001\"" + "\"goods_name\":\"ipad\"," +
" }"); "\"quantity\":1," +
AlipayTradeOrderSettleResponse response = alipayClient.execute(request); "\"price\":2000," +
"\"goods_category\":\"34543238\"," +
"\"body\":\"特价手机\"," +
"\"show_url\":\"http://www.alipay.com/xxx.jpg\"" +
"}]," +
"\"operator_id\":\"Yx_001\"," +
"\"store_id\":\"NJ_001\"," +
"\"terminal_id\":\"NJ_T_001\"," +
"\"extend_params\":{" +
"\"sys_service_provider_id\":\"2088511833207846\"" +
"}," +
"\"timeout_express\":\"90m\"," +
"\"business_params\":\"{\\\"data\\\":\\\"123\\\"}\"" +
"}");
AlipayTradeCreateResponse response = alipayClient.execute(request);
if(response.isSuccess()){ if(response.isSuccess()){
System.out.println("调用成功"); System.out.println("调用成功");
} else { } else {
System.out.println("调用失败"); System.out.println("调用失败");
} }
return null; return null;
} }
public static void main(String[] args) throws AlipayApiException { public static void main(String[] args) throws AlipayApiException {
AlipayService alipayService = new AlipayService(); AlipayService alipayService = new AlipayService();
alipayService.alipay(); JSONObject dto = new JSONObject();
// dto.put("out_request_no", MakeOrderNum.makeOrderNum());// 结算请求流水号 开发者自行生成并保证唯一性
// dto.put("trade_no",IdGen.randomBase62(64)); // 支付宝订单号
// JSONObject royalty_parameters = new JSONObject(); // 分账明细信息
// royalty_parameters.put("trans_out","2088101126765726");// 分账支出方账户,类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字
// royalty_parameters.put("trans_in","2088101126708402"); // 分账收入方账户,类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。
// royalty_parameters.put("amount","0.1"); // 分账的金额,单位为元
// royalty_parameters.put("amount_percentage","100"); // 分账信息中分账百分比。取值范围为大于0,少于或等于100的整数。
// royalty_parameters.put("desc","desc");
// dto.put("operator_id","operator_id");// 操作员id 可选
alipayService.alipay(dto);
alipayService.aliPay("0.01",new HashMap<>());
}
public String aliPay(String amount,Map<String,Object> body){
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",Global.getConfig("alipay.appid"), Global.getConfig("alipay.private.key") , "json", "UTF-8", Global.getConfig("alipay.public.key"), "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setPassbackParams(URLEncoder.encode(body.toString()));; //描述信息 添加附加数据
model.setSubject("魅格"); //商品标题
model.setOutTradeNo(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+(int)(Math.random()*90000+10000)); //商家订单编号
model.setTimeoutExpress("30m"); //超时关闭该订单时间
model.setTotalAmount(amount); //订单总金额
model.setProductCode("QUICK_MSECURITY_PAY"); //销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY
request.setBizModel(model);
request.setNotifyUrl("baidu.com"); //回调地址
String orderStr = "";
try {
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
orderStr = response.getBody();
System.out.println(orderStr);//就是orderString 可以直接给客户端请求,无需再做处理。
} catch (AlipayApiException e) {
e.printStackTrace();
}
return orderStr;
} }
} }
...@@ -17,8 +17,6 @@ import java.util.SortedMap; ...@@ -17,8 +17,6 @@ import java.util.SortedMap;
@Service @Service
public class HuanqiuhuijuService { public class HuanqiuhuijuService {
public JSONObject huanqiuhuijuPay(JSONObject dto) throws Exception { public JSONObject huanqiuhuijuPay(JSONObject dto) throws Exception {
SortedMap map = Bean2Map.JSONObject2SortedMap(dto); SortedMap map = Bean2Map.JSONObject2SortedMap(dto);
String sign = SignUtils.createSign(map, ComCode.HUANQIUHUIJU_MERCHANT_KEY); String sign = SignUtils.createSign(map, ComCode.HUANQIUHUIJU_MERCHANT_KEY);
...@@ -28,40 +26,6 @@ public class HuanqiuhuijuService { ...@@ -28,40 +26,6 @@ public class HuanqiuhuijuService {
System.out.println("result:"+result); System.out.println("result:"+result);
return JSONObject.parseObject(result); return JSONObject.parseObject(result);
} }
public static void main(String[] args) throws Exception {
HuanqiuhuijuService huanqiuhuijuService = new HuanqiuhuijuService();
JSONObject dto = new JSONObject();
String orderId = IdGen.randomBase62(32);
dto.put("transcode","300");// 交易码
dto.put("version","0100"); // 版本号
dto.put("ordersn", MakeOrderNum.makeOrderNum()); // 流水号 每次交易都唯一
dto.put("merchno",ComCode.HUANQIUHUIJU_MERCHANT_ID); // 商户号
dto.put("dsorderid", orderId); // 订单号 唯一
dto.put("txnAmt","1000"); // 交易金额
dto.put("txnRate","2");// 费率
dto.put("siglePrice", "100"); // 单笔价格
dto.put("merchno",ComCode.HUANQIUHUIJU_MERCHANT_ID); // 商户号
dto.put("realName", "李波"); // 真实姓名
dto.put("idCardNo","53250219850831031X"); // 身份证号
dto.put("bankCardNo","6225571645517950");// 银行卡号
dto.put("bankCode","306331003281"); // 银行代码
dto.put("bankName","广发银行"); // 消费卡银行名称
dto.put("phone","13821934497"); // 手机号
dto.put("cvn2","009");
dto.put("expireDate","0821");
dto.put("notifyUrl", Global.getConfig("project.access.url")+"/api/pay/notifyPay");
dto.put("settleBankCode","102100099996"); // 结算银行代码
dto.put("settleCardNo","6212260302011080165"); // 结算银行卡
dto.put("settlePhone","13821934497"); // 结算手机号
dto.put("settleCardBankName","中国工商银行"); // 结算卡银行名称
System.out.println(dto.toJSONString());
huanqiuhuijuService.huanqiuhuijuPay(dto);
// 20180417101150959000 20180417101211113000 nXXKJE4LI7VV222bgdjrw3013YQ2ozZSMGGmxhZBGqsDeH9OOu6kB0lP3tYjZm4v
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment