使用Java怎么实现一个微信支付和微信退款功能

  介绍

今天就跟大家聊聊有关使用Java怎么实现一个微信支付和微信退款功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

,/* *   ,,*,微信统一下单接口   ,,* @return   ,,*/@RequestMapping才能(value =,“/doUnifiedOrder",, method =, RequestMethod.POST)   public 才能;ResponseBean  doUnifiedOrder (@RequestBody  Map<字符串,Object>,点播),{   ,,,Map  resultMap=new  HashMap ();   ,,,String  openid =,(字符串),req.get (“openId");      ,,,WXPay  WXPay =零;      ,,,try  {   ,,,,,//初始化证书   ,,,,,myConfig.initCert ();   ,,,,,wxpay=, new  wxpay (myConfig);   ,,,},catch  (Exception  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,,//生成的随机字符串   ,,,String  nonce_str =, WXPayUtil.generateNonceStr ();   ,,,//获取客户端的ip地址   ,,,//获取本机的ip地址   ,,,InetAddress  addr =,空;   ,,,try  {   ,,,,,addr =, InetAddress.getLocalHost ();   ,,,},catch  (UnknownHostException  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,,//支付金额,需要转成字符串类型,否则后面的签名会失败   ,,,String  payOutMoney =, WxMoney.changeY2F (String.valueOf (req.get (“money")));   ,,,String  tradeName =,(字符串),req.get (“tradeName");   ,,,如果(商品名称!=null&, tradeName.length()在0){      还有,,,}{   ,,,,,tradeName =,“课程支付“;   ,,,}   ,,,String  body =,商品名称;   ,,,//商户订单号   ,,,String  out_trade_no=, WXPayUtil.generateNonceStr ();   ,,,//统一下单接口参数   ,,,HashMap<字符串,String>, data =, new  HashMap<字符串,String> ();   ,,,data.put (“appid",,你的appid);   ,,,data.put (“mch_id",,商户id);   ,,,data.put (“nonce_str",, nonce_str);   ,,,data.put (“body",,身体);   ,,,data.put (“out_trade_no" out_trade_no);   ,,,data.put (“total_fee",, payOutMoney);   ,,,data.put (“spbill_create_ip",,“127.0.0.1");   ,,,data.put (“notify_url",,回调地址);   ,,,data.put (“trade_type",“JSAPI");   ,,,data.put (“openid",, openid);   ,,,try  {   ,,,,,Map<字符串,String>, rMap =, wxpay.unifiedOrder(数据);   ,,,,,String  return_code =,(字符串),rMap.get (“return_code");   ,,,,,String  result_code =,(字符串),rMap.get (“result_code");   ,,,,,String  nonceStr =, WXPayUtil.generateNonceStr ();   ,,,,,resultMap.put (“nonceStr",, nonceStr);   ,,,,,Long  timeStamp =, System.currentTimeMillis (),/, 1000;   ,,,,,if  (“SUCCESS" .equals (return_code),,,, return_code.equals (result_code)), {   ,,,,,,,,,String  prepayid =, rMap.get (“prepay_id");   ,,,,,,,,,resultMap.put (“package",,“prepay_id=? prepayid);   ,,,,,,,,,resultMap.put (“signType",,“MD5");   ,,,,,,,,,//这边要将返回的时间戳转化成字符串,不然小程序端调用wx.requestPayment方法会报签名错误   ,,,,,,,,,resultMap.put (“timeStamp",, timeStamp  +,““);   ,,,,,,,,,//再次签的名,这个签名用于小程序端调用wx.requesetPayment方法   ,,,,,,,,,resultMap.put (“appId", myConfig.getAppID ());   ,,,,,,,,,String  sign =, WXPayUtil.generateSignature (resultMap, myConfig.getKey ());   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用Java怎么实现一个微信支付和微信退款功能