微信服务号 微信支付开发

微信支付,须要通过微信支付验证
眼下。支付仅限服务号,
做微信支付开发,主要看开发文档
统一下单。
订单查询
退款等

1.发起支付。都是通过h5发起的,首先获取prepay_id

发起支付,须要统一下单的prepay_id

SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
        parameters.put("appid", ConfigUtil.APPID);

        parameters.put("mch_id", ConfigUtil.MCH_ID);
        parameters.put("nonce_str", PayCommonUtil.CreateNoncestr());
        parameters.put("body", bodyorder);
        parameters.put("out_trade_no", outTradeNo);// 用户订单号
        parameters.put("total_fee", totalfee);// 标价金额(分)
        // parameters.put("spbill_create_ip",IpAddressUtil.getIpAddr(request));
        parameters.put("spbill_create_ip", "192.168.1.1");// 电脑測试
        // parameters.put("spbill_create_ip",NetworkUtil.getIpAddress(request));
        parameters.put("notify_url", ConfigUtil.NOTIFY_URL);
        parameters.put("trade_type", "JSAPI");
        parameters.put("openid", openId);
        String sign = PayCommonUtil.createSign("UTF-8", parameters);
        parameters.put("sign", sign);
        String requestXML = PayCommonUtil.getRequestXml(parameters);

        String result = CommonUtil.httpsRequestR2s(ConfigUtil.UNIFIED_ORDER_URL, "POST", requestXML);
        System.out.println("第一弹数据" + result + "ip地址" + NetworkUtil.getIpAddress(request));

数据为

 第一弹数据
  <xml>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[OK]]></return_msg>
  <appid><![CDATA[wx06e68e38fcef451d]]></appid>
  <mch_id><![CDATA[1427607202]]></mch_id>
  <nonce_str><![CDATA[vOK9ll6ZylQAOiRV]]></nonce_str>
  <sign><![CDATA[4D7F2D8D55377493503F8BB9E2F94C8B]]></sign>
  <result_code><![CDATA[SUCCESS]]></result_code>
  <prepay_id><![CDATA[wx20170105120958d7d94506790707606719]]></prepay_id>
  <trade_type><![CDATA[JSAPI]]></trade_type>
  </xml>

2.拿到prepay_id后,就能够发起支付

支付,须要设置測试路径和真实路径。
这里写图片描写叙述
发起支付。将參数转为json,在放到respond里,然后h5页面从request里取

SortedMap<Object, Object> params = new TreeMap<Object, Object>();
        params.put("appId", ConfigUtil.APPID);
        params.put("timeStamp", Long.toString(new Date().getTime()));
        params.put("nonceStr", PayCommonUtil.CreateNoncestr());
        System.out.println("订单id" + map.get("prepay_id"))
posted @ 2017-08-09 13:40  wzzkaifa  阅读(286)  评论(0编辑  收藏  举报