/*** 因为微信总是很多个商户号很多和appid。很多个密钥文件,所以全部改成手动传值的方式,就可以支持多商户调用** @param appId    商户的appid* @param mchId    商户的商户号* @param key      商户的支付用的密钥* @param certPath 商户的退款用的退款文件地址,非必传,没有就传null,具体看开发文档是否需退款文件* @throws Exception*/调用示例测试代码。扫码支付返回的是一个base64格式的二维码。需要拼接前缀的(有逗号) :  data:image/jpeg;base64,public static void main(String[] args) throws Exception {WXPayEntrance wxPayEntrance = new WXPayEntrance("wxab8acb865bb1637e", "11473623", "2ab9071b06b9f739b950ddb41db2690d", null);WXPayVO wxPayVO = new WXPayVO();wxPayVO.setBody("1231231666623");wxPayVO.setTotalFee("1");wxPayVO.setNotifyUrl("https://********/api/wxpayreturn");wxPayVO.setTradeType("NATIVE");wxPayVO.setOutTradeNo("ty190523151415047046");wxPayVO.setUid(123123123);wxPayVO.setSpbillCreateIp("192.168.17.214");Map<String, String> map = wxPayEntrance.doUnifiedOrder(wxPayVO);System.out.println(map);//        PayRefundVo payRefundVo = new PayRefundVo();
//        payRefundVo.setOutRefundNo("A190523155119103");
//        payRefundVo.setOutTradeNo("ty190523155047046");
//        payRefundVo.setRefundDesc("退款");
//        payRefundVo.setRefundFee("10");
//        payRefundVo.setUid(123123123);
//        payRefundVo.setRefundFeeType("CNY");
//        payRefundVo.setTotalFee("120");
//        Map<String, String> map = wxPayEntrance.doRefund(payRefundVo);
//        System.out.println(map);}

  

异步回调代码如下:package com.huis.portal.controller;import com.huis.portal.weixinpay.WXPayUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;@RestController
@Api(description = "支付模块模块")
@CrossOrigin(origins = "*", maxAge = 3600)
@Transactional(rollbackFor = Exception.class)
public class PayRestController {@ApiOperation(value = "微信回调接口", notes = "微信回调接口")@RequestMapping(value = "/api/wxpayreturn", method = RequestMethod.POST)public String WeixinParentNotifyPage(HttpServletRequest request, HttpServletResponse response) throws Exception {// 返回给微信的处理结果String result = null;String inputLine;String notityXml = "";request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");response.setHeader("Access-Control-Allow-Origin", "*");// 微信给返回的东西try {while ((inputLine = request.getReader().readLine()) != null) {notityXml += inputLine;}request.getReader().close();} catch (Exception e) {e.printStackTrace();result = setXml("fail", "xml获取失败");return result;}if (StringUtils.isEmpty(notityXml)) {result = setXml("fail", "xml为空");return result;}Map<String, String> map = WXPayUtil.xmlToMap(notityXml);String out_trade_no = (String) map.get("out_trade_no");// 获取商户订单号String result_code = (String) map.get("result_code");// 业务结果String total_fee = (String) map.get("total_fee");// 获取订单金额String appid = (String) map.get("appid");// 获取订单金额if (map.get("result_code").equals("SUCCESS")) {//TODOresult = setXml("SUCCESS", "OK");return result;}else {result = setXml("fail", "xml为空");return result;}}// 通过xml 发给微信消息public static String setXml(String return_code, String return_msg) {SortedMap<String, String> parameters = new TreeMap<String, String>();parameters.put("return_code", return_code);parameters.put("return_msg", return_msg);return "<xml><return_code><![CDATA[" + return_code + "]]>" + "</return_code><return_msg><![CDATA[" + return_msg+ "]]></return_msg></xml>";}}

  

微信支付代码下载地址:链接:https://pan.baidu.com/s/1kZs5hxQuzxmRR50N-DOKSg  密码:u4rj

转载于:https://www.cnblogs.com/hahahehexixihoho/p/10916590.html

集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...相关推荐

  1. 智云物业4.20+前端,物业小程序源码+前端+公众号

    1. 可视化楼宇房产管理,一键生成楼宇房产(支持EXCEL导入) 2. 住户管理(业主.成员.租户),严格.宽松和自由三种注册方式 3. 报修和投诉建议完整处理流程(派单与抢单),内部工单处理(派单与 ...

  2. 最新PHP微信扫码关注公众号并授权登录源码

    正文: PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间. PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像.openid和省市等信息源码. 第一步:获取关注二维 ...

  3. PHP微信扫码关注公众号并授权登录源码

    PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间. PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像.openid和省市等信息源码. 演示体验地址: https: ...

  4. 微信小程序生态13-微信公众号自定义菜单、个性化菜单配置

    文章导航 微信小程序生态1-初识小程序 微信小程序生态2-创建一个微信小程序 微信小程序生态3-微信小程序登录流程设计 微信小程序生态4-扫普通二维码进入小程序.打开短链接进入小程序 微信小程序生态5 ...

  5. 使用微信小程序扫码登录系统PC端web的功能

    1.项目说明: 项目PC端(vue单页面应用,前后端分离).移动端(微信小程序)共用同一Java Springboot服务.小程序可以直接获取微信手机号登录,不需要密码,因为系统黙认密码是随机的,因此 ...

  6. 微信小程序扫码实现web自动登录

    清明假期在家无聊,写了一个微信小程序扫码,web登录的demo 技术栈 前端:vue2+vue-socket.io+uuid,微信小程序原生+weapp.socket.io 后端: eggjs+red ...

  7. 微信小程序获取并展示公众号推文

    微信小程序获取并展示公众号推文 获取公众号access_token(开发环境) IP白名单设置 获取access_token 小程序前端展示 素材导入云数据库 云函数读取展示 注:笔者是小程序菜鸟,代 ...

  8. PHP内核微信拼团购物商城小程序源码

    简介: ThinkPHP内核微信拼团购物商城小程序源码 支持微信 网盘下载地址: http://kekewl.cc/RanXsKnF0WN0 图片:

  9. 小程序长按识别公众号二维码、个人微信号、企业微信号、微信群、-已实现

    一.微信原则上不在支持小程序中长按识别 在2020年微信的一次版本更新后,就不在支持 在小程序中长按识别微信公众号了. 可以看到这个文章: 紧急!!! 微信8.0版本,在小程序webview内嵌公众号 ...

  10. web端接入微信小程序扫码进行登录

    1.拿到小程序的appid和secret 2.调用微信生成小程序的接口getUnlimitedQRCode(没有数量限制,调用详情请看api文档,这里仔细一点access_token是在url后面的, ...

最新文章

  1. ExtJs FormPanel布局
  2. postman进阶之Newman,从安装到使用到填坑,不废话
  3. Java接口–历年来Java 9之旅–默认和私有方法
  4. Linux逻辑卷(LVM)技术详解
  5. nginx关于错误页面重定向的问题
  6. 医疗管理系统HIS源码
  7. 算法——排序——堆排序图解动画
  8. 通达OA2019版本全功能
  9. 十六进制格式颜色转换成RGB格式颜色
  10. 三步为你的 Mac 设置黑客帝国矩阵屏保
  11. qt学习之旅--MinGW编译FFmpeg(32bit)
  12. 软件破解简单示例演示
  13. 步入社会的第一个迷茫期
  14. ip地址和mac地址的区别以及tpc/ip四层网络协议
  15. 基于微信小程序云开发(校园许愿墙app)妄想替代学校的表白墙
  16. 为什么没有下划线_资料1907:xumin字体打不出下划线?凌哥英语送您改进版!
  17. 2021年中国PPP项目数量及总投资情况:城市基础设施项目数量最多,贵州项目数量及总投资位全国第一[图]
  18. SteamVR 2.x 手柄射线与3D物体交互(9)
  19. Python数据分析:股票数据分析案例
  20. Qt基于Qml图片翻转演示

热门文章

  1. winfrom 去掉字符串空格
  2. poj 3384 Feng Shui (Half Plane Intersection)
  3. bash 学习笔记2
  4. SAP屏幕设计器专题:页签控件(八)
  5. 《Algorithms》Comparable 实现归并排序
  6. [转]cookie、sesstion、localstorage、sesstionstorage的使用和区别
  7. 多线程bug处理记录
  8. 通向财务自由之路05_选择一个有效的理念
  9. jq使用教程04_高校版教程
  10. 中国3亿中年男人都在花钱买什么?数据分析后告诉你答案,很现实