微信支付下单

3 篇文章 0 订阅
/**
* 生成订单
*/
public void genNo(){
设置获取prepayid支付参数
WxOrder wxOrder = new WxOrder();
try {
String out_trade_no = WxUtil.getOut_trade_no();
String noncestr = WxUtil.getNonceStr();
String notify_url = "http://xxxxxxxx/tenpay/wxPayAction_payNotify.do";
String body = "xxxxxxxxxxx";
//传入参数
Map<String,String> parameters = new TreeMap<String,String>();
parameters.put("appid", WxConfig.aap_id);
parameters.put("mch_id", WxConfig.PARTNER);
parameters.put("body",body); //商品描述   
parameters.put("notify_url", notify_url); //接收财付通通知的URL  
parameters.put("out_trade_no", out_trade_no); //商家订单号   
parameters.put("total_fee", "1"); //商品金额,以分为单位  
String ip = IPConvert.IPV6ToIPv4(request.getRemoteAddr());
parameters.put("spbill_create_ip",ip); //订单生成的机器IP,指用户浏览器端IP  
parameters.put("trade_type", "APP");
parameters.put("nonce_str", noncestr);
//服务器签名
String sign = WxUtil.sign(parameters);
StringBuffer params = new StringBuffer();
params.append("<xml>");
params.append("<appid>"+parameters.get("appid")+"</appid>");
params.append("<mch_id>"+parameters.get("mch_id")+"</mch_id>");
params.append("<nonce_str>"+parameters.get("nonce_str")+"</nonce_str>");
params.append("<body>"+parameters.get("body")+"</body>");
params.append("<out_trade_no>"+parameters.get("out_trade_no")+"</out_trade_no>");
params.append("<total_fee>"+parameters.get("total_fee")+"</total_fee>");
params.append("<notify_url>"+parameters.get("notify_url")+"</notify_url>");
params.append("<spbill_create_ip>"+parameters.get("spbill_create_ip")+"</spbill_create_ip>");
params.append("<trade_type>"+parameters.get("trade_type")+"</trade_type>");
params.append("<sign>"+sign+"</sign>");
params.append("</xml>");
//统一下单
String requestUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder";
TenpayHttpClient httpClient = new TenpayHttpClient();
httpClient.setReqContent(requestUrl);
if (httpClient.callHttpPost(requestUrl, params.toString())) {
String resContent = httpClient.getResContent();
System.out.println(resContent);
Map map = XMLUtil.doXMLParse(resContent);
String return_code = map.get("return_code").toString();
wxOrder.setReturn_code(return_code);
if("SUCCESS".equals(return_code)){
String result_code = map.get("result_code").toString();
wxOrder.setResult_code(result_code);
if("SUCCESS".equals(result_code)){
String pay_noncestr = WxUtil.getNonceStr();
String pay_timestamp = WxUtil.getTimeStamp();
wxOrder.setAppid(map.get("appid").toString());
wxOrder.setMch_id(map.get("mch_id").toString());
wxOrder.setPrepay_id(map.get("prepay_id").toString());
wxOrder.setTimestamp(pay_timestamp);
wxOrder.setNonce_str(pay_noncestr);
wxOrder.setPackageValue("Sign=WXPay");

//调起支付签名
Map<String,String> pay_parameters = new TreeMap<String,String>();
pay_parameters.put("appid", wxOrder.getAppid());
pay_parameters.put("partnerid", wxOrder.getMch_id());
pay_parameters.put("prepayid", wxOrder.getPrepay_id());
pay_parameters.put("package", wxOrder.getPackageValue());
pay_parameters.put("noncestr", pay_noncestr);
pay_parameters.put("timestamp",pay_timestamp); 
String pay_sign = WxUtil.sign(pay_parameters);
wxOrder.setSign(pay_sign);
}else{
wxOrder.setErr_code(map.get("err_code").toString());
wxOrder.setErr_code_des(map.get("err_code_des").toString());
}
}else{
wxOrder.setReturn_msg(map.get("return_msg").toString());
}
}
} catch (Exception e) {
e.printStackTrace();
}
writeFJson(wxOrder);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值