java微信公众号支付Demo

下来讲一下微信公众号的支付,这种微信的支付模式相对于其他两种都相对的简单。
首先,进行正常的下单,获取单号和一下要支付的信息给微信,上代码

public static WeixinPay setRequestXML(OrderPay orderPay,HttpServletRequest request) {
	WeixinPay weixinPay = new WeixinPay();
	weixinPay.setAppid(appid);
	weixinPay.setMch_id(mch_id);
	weixinPay.setNotify_url(notify_url);
	weixinPay.setNonce_str(nonceStr());//加密字符串,对key进行加密,默认MD5
	weixinPay.setOut_trade_no(orderPay.getPayNumber());//商户订单号
	weixinPay.setSpbill_create_ip(IPUtil.getRemortIP(request));//ip
	int total_fee =Arith.changeY2F(orderPay.getPayment()); //金额,进行分的转化
	weixinPay.setTotal_fee(total_fee);
	weixinPay.setTrade_type(“NATIVE”);//公众号支付的标志
	weixinPay.setBody(“哇哈哈”);//商品或支付单简要描述
	weixinPay.setProduct_id(orderPay.getPayNumber());//商品ID
	weixinPay.setSign(WxSignUtil.signStr(weixinPay));//签名
	WeixinPay weixinPay2 = sendWxPay(weixinPay);//进行验签,传给微信获取参数信息
	return weixinPay2;
}
private static WeixinPay sendWxPay(WeixinPay weixinPay){
		String paramXml = XmlUtil.objToXml(weixinPay);//转xml
		logger.info("微信请求的xml:"+paramXml);
		
		/**https://apihk.mch.weixin.qq.com/pay/unifiedorder    (建议接入点:东南亚)
		https://apius.mch.weixin.qq.com/pay/unifiedorder    (建议接入点:其它)
		https://api.mch.weixin.qq.com/pay/unifiedorder        (建议接入点:中国国内)**/
		
		String requestURL = “”;//选择上面的路径
		TreeMap<String, String> results = HttpUtil.doPostMsiData(requestURL, paramXml);
		//这布操作是用来看调用第三方接口是否成功,详细请看之前写的H5支付
		if(WxConstants.SUCCESS.equals(results.get(WxConstants.RETURN_CODE))){
			if(WxConstants.SUCCESS.equals(results.get(WxConstants.RESULT_CODE))){
				if(WxGZHSignUtil.isValidateSign(results)){
					weixinPay.setPrepay_id(results.get(WxConstants.PREPAY_ID));//预支付id
					weixinPay。setCode_url(results.get(WxConstants.CODE_URL));//二维码,可以通过草料网生成二维码,进行测试
				}else{
					//验签失败
				}
			}else{
				//在这里输入错误信息
			}
		}else{
			//在这里输入错误信息
		}		
		return weixinPay;
	}

到控制层只需要返回就好了,至于回调怎么写如果有需要请看我之前写的jsapi支付即可。
jsapi支付
H5支付
如果发现什么问题,请大家指出,我马上改正,谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值