集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...
/*** 因为微信总是很多个商户号很多和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 支付 ,以及 服务商提现...相关推荐
- 智云物业4.20+前端,物业小程序源码+前端+公众号
1. 可视化楼宇房产管理,一键生成楼宇房产(支持EXCEL导入) 2. 住户管理(业主.成员.租户),严格.宽松和自由三种注册方式 3. 报修和投诉建议完整处理流程(派单与抢单),内部工单处理(派单与 ...
- 最新PHP微信扫码关注公众号并授权登录源码
正文: PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间. PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像.openid和省市等信息源码. 第一步:获取关注二维 ...
- PHP微信扫码关注公众号并授权登录源码
PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间. PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像.openid和省市等信息源码. 演示体验地址: https: ...
- 微信小程序生态13-微信公众号自定义菜单、个性化菜单配置
文章导航 微信小程序生态1-初识小程序 微信小程序生态2-创建一个微信小程序 微信小程序生态3-微信小程序登录流程设计 微信小程序生态4-扫普通二维码进入小程序.打开短链接进入小程序 微信小程序生态5 ...
- 使用微信小程序扫码登录系统PC端web的功能
1.项目说明: 项目PC端(vue单页面应用,前后端分离).移动端(微信小程序)共用同一Java Springboot服务.小程序可以直接获取微信手机号登录,不需要密码,因为系统黙认密码是随机的,因此 ...
- 微信小程序扫码实现web自动登录
清明假期在家无聊,写了一个微信小程序扫码,web登录的demo 技术栈 前端:vue2+vue-socket.io+uuid,微信小程序原生+weapp.socket.io 后端: eggjs+red ...
- 微信小程序获取并展示公众号推文
微信小程序获取并展示公众号推文 获取公众号access_token(开发环境) IP白名单设置 获取access_token 小程序前端展示 素材导入云数据库 云函数读取展示 注:笔者是小程序菜鸟,代 ...
- PHP内核微信拼团购物商城小程序源码
简介: ThinkPHP内核微信拼团购物商城小程序源码 支持微信 网盘下载地址: http://kekewl.cc/RanXsKnF0WN0 图片:
- 小程序长按识别公众号二维码、个人微信号、企业微信号、微信群、-已实现
一.微信原则上不在支持小程序中长按识别 在2020年微信的一次版本更新后,就不在支持 在小程序中长按识别微信公众号了. 可以看到这个文章: 紧急!!! 微信8.0版本,在小程序webview内嵌公众号 ...
- web端接入微信小程序扫码进行登录
1.拿到小程序的appid和secret 2.调用微信生成小程序的接口getUnlimitedQRCode(没有数量限制,调用详情请看api文档,这里仔细一点access_token是在url后面的, ...
最新文章
- ExtJs FormPanel布局
- postman进阶之Newman,从安装到使用到填坑,不废话
- Java接口–历年来Java 9之旅–默认和私有方法
- Linux逻辑卷(LVM)技术详解
- nginx关于错误页面重定向的问题
- 医疗管理系统HIS源码
- 算法——排序——堆排序图解动画
- 通达OA2019版本全功能
- 十六进制格式颜色转换成RGB格式颜色
- 三步为你的 Mac 设置黑客帝国矩阵屏保
- qt学习之旅--MinGW编译FFmpeg(32bit)
- 软件破解简单示例演示
- 步入社会的第一个迷茫期
- ip地址和mac地址的区别以及tpc/ip四层网络协议
- 基于微信小程序云开发(校园许愿墙app)妄想替代学校的表白墙
- 为什么没有下划线_资料1907:xumin字体打不出下划线?凌哥英语送您改进版!
- 2021年中国PPP项目数量及总投资情况:城市基础设施项目数量最多,贵州项目数量及总投资位全国第一[图]
- SteamVR 2.x 手柄射线与3D物体交互(9)
- Python数据分析:股票数据分析案例
- Qt基于Qml图片翻转演示