java开发记录-微信H5支付

微信公众号H5网页支付 微信公众号H5网页支付引言基本流程基础依赖前端代码后端代码其他相关后台方法 引言 个人开发小菜一枚,主要做 工业数字化转型 这一行业的,说白了就是传统行业,入坑这么多年了身边朋友陆陆续续开始创业,本博客讲述的就是接了一单朋友的私活,帮之前的老同学开发一个公众号没有要钱([就收了个成本]小声逼逼),主要是自己之前压根没有接触过微信开发这一块,想要了解了解,主要涉及到 H5网页支付 ,支付界面呢,非常简单就是画了个简单的HTML内容呢就是一个选择金额然后点击支付,前端调用微信的付款界面出来输入密码进行支付。 1 阅读详情

一点点关于微信H5支付开发的总结.

首先需要申请到响应的appid,key.具体申请方法前往官网:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2Findex.php 可以选择对应的接入方式进行接入.

接入成功后就可以进行代码设计啦.

此次测试开发是在springboot环境下完成的,下面列出微信支付用到的相关依赖:

        <dependency>
        <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-pay</artifactId>
            <version>3.1.0</version>
        </dependency>

1.PayUtils工具类

用来保存appid,key,密钥以及商品户号信息,创建并配置好wxMpService用于后续启动微信统一下单的接口.

public class PayUtils {
	/**
	 * 公众号AppId
	 */
	public static final String APP_ID = "xxx";
	/**
	 * 公众号AppSecret
	 */
	public static final String APP_SECRET = "xxx";
	/**
	 * 微信支付商户号
	 */
	public static final String MCH_ID = "xxx";
	/**
	 * 微信支付API秘钥
	 */
	public static final String KEY = "xxx";
	/**
	 * 回调域名
	 */
	public static final String REDIRECT_DOMAIN = "http://xxx.com";

	private static final WxMpService wxMpService = new WxMpServiceImpl();
	private static final WxPayService wxPayService = new WxPayServiceImpl();

	static {
		WxMpInMemoryConfigStorage config = new WxMpInMemoryConfigStorage();
		config.setAppId(APP_ID);
		config.setSecret(APP_SECRET);
		wxMpService.setWxMpConfigStorage(config);

		WxPayConfig payConfig = new WxPayConfig();
		payConfig.setAppId(APP_ID);
		payConfig.setMchId(MCH_ID);
		payConfig.setMchKey(KEY);
		payConfig.setSignType(WxPayConstants.SignType.MD5);
		//h5公众号支付
		payConfig.setTradeType("MWEB");
		payConfig.setNotifyUrl(REDIRECT_DOMAIN + "/pay/success");
		wxPayService.setConfig(payConfig);
	}

	public static WxMpService wxMpService() {
		return wxMpService;
	}

	public static WxPayService wxPayService() {
		return wxPayService;
	}

}

2.后台controller:

		@RequestMapping(value = "/h5Pay")
	public void h5Pay(HttpServletRequest request, HttpServletResponse response, ModelMap model) {
		Map<String,Object> result = new HashMap<>();
		result.put("success",false);
		try{
			WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
			orderRequest.setBody("微信H5支付测试");
			orderRequest.setOutTradeNo(UUID.randomUUID().toString().replace("-", ""));
			//商品支付金额
		
            //此处可直接写入数字来进行测试,也可通过参数形式赋值
orderRequest.setTotalFee(Integer.valueOf(request.getParameter("total_fee")));
			orderRequest.setSpbillCreateIp(getRealIp(request));
            //H5支付标识为MWEB
			orderRequest.setTradeType("MWEB");
			orderRequest.setSceneInfo("{\"h5_info\": {\"type\":\"Wap\",\"wap_url\": \""+PayUtils.REDIRECT_DOMAIN+"\",\"wap_name\": \"本地测试\"}}");
			orderRequest.setSignType("MD5");
			//签名创建
			Map<String,String> packageParams = new HashMap<>();
			packageParams.put("appid", PayUtils.APP_ID);
			packageParams.put("mch_id", PayUtils.MCH_ID);
			packageParams.put("nonce_str", UUID.randomUUID().toString().replace("-", ""));
			packageParams.put("signType",orderRequest.getSignType());
			String sign = SignUtils.createSign(packageParams,"MD5", PayUtils.KEY,false);
			orderRequest.setSign(sign);

			WxPayMwebOrderResult orderResult =PayUtils.wxPayService().createOrder(orderRequest);
			String mwebUrl = orderResult.getMwebUrl();
			response.sendRedirect(mwebUrl);
			result.put("success",true);
		}catch (Exception e){
			result.put("errormsg",e.getMessage());
		}
		model.addAttribute("result",result);
	}

//获取真实ip地址 通过阿帕奇代理的也能获取到真实ip
	public static String getRealIp(HttpServletRequest request){
		String ip = request.getHeader("x-forwarded-for");
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
			ip = request.getHeader("Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
			ip = request.getHeader("WL-Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
			ip = request.getRemoteAddr();
		}
		return ip;
	}

3.接口调用就不贴了,直接写在a标签或其它方式均可.

此次测试开发只填写了接口所需的必填参数,详细参数前往:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1 这里就不截图了.里面也有详细的算法和参数格式解释,还有很详细的常见错误解决办法.

新人第一次写,望包涵.有错和不足之处希望指出.这里只是针对统一下单进行了整理,后续的API还在研究当中...若有转载,请注明出处谢谢.

Android Studio 通过YunGouOS开放平台接入个人微信H5支付 App内实现微信H5付款 先来看下演示效果 想利用yungouos平台的sdk做微信H5支付,但是没有查到在AS开发的Demo,只好自己琢磨了。由于本人也是第一次做微信支付,期间遇到非常多的问题,也查阅了很多的资料,总算将步骤理清楚了!!!写下这篇文章为了记录一下,也为后来人有个参考。 最主要的思路还是yungouos官方的一个Demo: uniapp开发APP接入个人微信支付、支付宝接口实战演练(附源码) 教程开始 在build.gradle导入两种类型的jar包 dependencies模块 yun 阅读详情

相关推荐

移动App中接入微信支付和支付宝支付

小摊小贩们在线下交易一般无需接入微信支付,只需要向别人出示自己的付款码就行。因为一手交钱,一手交货,你不付钱,人家不会给你商品。但在网上,要实现无人值守,别人扫码付了款,平台得自动知道,然后再发货。所以必须接入微信支付。申请地址:https://mp.weixin.qq.com。关联一个appId,搜索appId, 然后提交申请。首先你要有一个微信账号,然后申请服务号或公众号。微信支付必须是企业主体,要有营业执照才能申请。在公众号侧,菜单”微信支付“里确认申请。本文简单整理了一下该过程,备忘。

曲折旅程,艰难人生 1万+

微信H5支付 终于跑起来了

微信H5支付,参考了很多资料踩了不少坑,终于做出来了,做个记录 import java.util.UUID; import com.github.binarywang.wxpay.config.WxPayConfig; import com.github.binarywang.wxpay.constant.WxPayConstants; import com.github.binarywa...

fengshen_f的博客 1565

微信H5支付集成实战DEMO

随着移动互联网的飞速发展,微信H5支付以其便捷性和普及性成为电子商务中不可或缺的一部分。微信H5支付是微信支付提供的,允许商家通过移动端网页向用户提供支付服务的一种解决方案。微信支付作为微信生态中重要的组成部分,为开发者提供了便捷的支付接口,极大地促进了移动支付的普及。在开发微信H5支付功能时,使用微信官方提供的SDK可以简化开发流程,提高开发效率,并确保支付的安全性。SDK(Software Development Kit),即软件开发工具包,是为方便开发者编写应用而提供的工具集合。

weixin_35750483的博客 825

使用binary-wang开发微信小程序的登录和微信支付

使用binary-wang开发微信小程序的登录和支付

hardworking_boy的博客 1万+

微信支付学习笔记之调用com.github.binarywang.wxpay.service接口

接口链接:https://github.com/binarywang 使用步骤: 将HttpServletRequest转成 ip /** * 获得请求地址ip * @param httpservletrequest * @return */ public static String getClientIP(HttpServletRequest httpservletrequest) { if (httpservletrequest == null) return null; String s = httpservlet

自制电吉他效果器 DIY PCB(二)电路图分析

自制DIY电吉他效果器 PCB(二)电路图分析 要自制一款效果器,看懂电路图是必须的,即使你已经有了完整的设计电路图,在电路的绘制已久焊接的时候电路知识都会用到。 在效果器电路中,比较简单的是过载失真类效果器的电路。混响延迟等与声相有关的由于电路比较复杂本人也没有尝试过。其他的例如EQ、哇音等等效果器复杂程度依设计各不相同,在能做出过载失真类效果器后,可以自行尝试。 我这里主要为大家介绍失真效果器...

qq_41342525的博客 2万+

微信支付宝app,h5支付

这里用的是v2接口 ,使用的是binary-wang 工具。

Figure_hb的博客 722

ETAP实战:如何用仿真软件快速绘制标准一次接线图(附模板下载)

本文提供了一套基于ETAP软件高效绘制标准一次接线图的完整实战工作流。从国标符号库配置、绘图模板创建,到核心设备绘制、参数标注,再到利用软件模型进行拓扑检查与短路电流校核,手把手教你实现从零到一的专业图纸设计。文末附有实用模板下载,助你大幅提升电力设计效率与图纸质量。

weixin_29291573的博客 510

java支付方法_java实现微信H5支付方法详解

前面做了app微信支付的回调处理,现在需要做微信公众号的支付,花了一天多时间,终于折腾出来了!鉴于坑爹的微信官方没有提供Java版的demo,所以全靠自己按照同样坑爹的文档敲敲敲,所以记录下来,以供自己及后来人参考,不足之处,还请指正。首先,我们贴出调用支付接口的H5页面,当然,在这个页面之前,还需要做很多其他的操作,我们一步一步的来。坑爹的官方文档给了两个不同的支付接口,在微信公众平台开发中文档...

weixin_36410293的博客 1138

STM32 HAL库ADC+DMA配置详解:从CubeMX到实战调试

在嵌入式系统开发中,模数转换器(ADC)是实现传感器数据采集、信号处理等功能的基石。其工作原理是将连续的模拟信号转换为离散的数字量,为微控制器(MCU)提供可处理的数字信息。为了提升系统效率,直接存储器访问(DMA)技术被引入,它作为独立于CPU的数据搬运工,能在不占用CPU资源的情况下,自动完成外设与内存间的数据传输,从而解放CPU以执行更复杂的控制算法或通信任务。这种ADC与DMA的协同工作模式,对于实现高效、实时的数据流处理具有重要价值,广泛应用于电机控制、环境监测、音频处理等场景。本文聚焦于STM3

weixin_30698297的博客 407

手把手教你用ADuC845 DAC调试恒流电路(附实测数据与避坑指南)

本文详细介绍了如何利用ADuC845 DAC调试恒流电路,包括硬件搭建、DAC输出校准、低端死区问题解决方案及系统级调试技巧。通过实测数据和避坑指南,帮助工程师快速解决非线性输出和稳定性问题,提升电路性能。

life6的博客 336

H5网站接入微信支付(H5支付+JSAPI支付)

最近开发H5项目,需要接入微信支付,这里记录一下。 场景 项目是 H5 项目,这里踩坑了,以为接入 H5 支付就可以了,后面发现 H5 支付只能在微信外调用,所以后面连忙加入 JSAPI 支付 H5支付 H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端...

砷碲 - Shendi 1万+

Spring AI 实战:第七章、Spring AI Advisor机制之记忆大师

从金鱼到最强大脑通过 Spring AI 的记忆功能,我们成功让 AI:记住了用户身份实现了多用户隔离做到了持久化存储最终效果用户:“和上次一样” → AI 秒懂用户:“你知道我的名字吗?” → AI:“当然,张三!AI的进化路线🐟金鱼脑 →🧠最强大脑 →🏛️记忆宫殿管理员。

liaokailin的专栏 1516

微信H5支付 java代码 详细

当时做微信H5支付的时候,查询网上资料确实不是很多,都是断断续续,并不完整,花了两天时间,把支付搞定了,写个博客记录一下,也希望朋友少走点坑,代码是完全没问题的,现在把代码一一贴出来.强调一下是微信H5支付,不是公众号支付,不是app支付(当然你app是H5做的就可以) 这是html部分页面 <#include “header.html”/> 充值 充值记录 ...

blueAndSmile的博客 2204

livox雷达斜装修改

指的是,使用外部的陀螺仪的话,雷达到外部陀螺仪的转换,而mid360的陀螺仪是内置在360里面的,且方向和点云方向是一致的,所以不能通过修改此处去改变陀螺仪方向。同时livox_ros_driver2中的MID360_config.json里面的。这里面的外参,只能改变点云相对陀螺仪的位姿,而不能将陀螺仪映射到你期望的倾斜角度。fast_lio中的mid360.yaml中的外参。

z1872385的博客 2709

提高RFID检测距离以及检测速度的方法总结

摘要:提高RFID检测距离需优化阅读器功率、标签灵敏度、天线设计及频段选择,同时减少环境干扰;提升检测速度则需改进防碰撞算法、增强并行处理能力、精简数据传输。实际应用需平衡两者关系,如物流仓储采用UHF频段、高增益天线和动态Q算法实现远距离高速读取,ETC系统则通过微波频段和高速调制实现超远距离快速识别。不同场景需针对性优化硬件配置和系统参数。

start_up_go的博客 292

Android端 支付宝&微信H5支付调用

一、支付宝H5支付调用 支付宝H5支付官方开发文档 代码示例: step1: //传入支付宝支付所需url,跳转到webview页面 ali_pay.setOnClickListener { val aliUrl = "https://secure.xxxx.xxxxxxx.net/pay/pay/prepayAlipay" startAct...

qq_32138419的博客 3442

LVGL v8学习笔记 | 09 - 进度条控件的使用方法(bar)

lv_bar_set_range必须放在lv_bar_set_mode前面,否则不生效。bar对象的API在lv_bar.h中声明,以lv_bar_xxx命名。此事件可以用来在进度条更新值之后更新别的控件(比如进度条旁边的文字)。可以看到,默认创建的进度条值是0到100。(3)设置进度条的范围值(最大值和最小值)(2)获取进度条的起始值。(3)获取进度条的最小值。(4)获取进度条的最大值。(1)设置进度条的当前值。(2)设置进度条的起始值。(1)获取进度条当前值。(5)获取进度条的模式。

Mculover666的博客(嵌入式) 1729

java微信web支付开发_java实现微信H5支付方法详解

前面做了app微信支付的回调处理,现在需要做微信公众号的支付,花了一天多时间,终于折腾出来了!鉴于坑爹的微信官方没有提供Java版的demo,所以全靠自己按照同样坑爹的文档敲敲敲,所以记录下来,以供自己及后来人参考,不足之处,还请指正。首先,我们贴出调用支付接口的H5页面,当然,在这个页面之前,还需要做很多其他的操作,我们一步一步的来。坑爹的官方文档给了两个不同的支付接口,在微信公众平台开发中文档...

weixin_39732027的博客 753

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java微信网页支付_java实现微信H5支付

原标题:java实现微信H5支付前面做了app微信支付的回调处理,现在需要做微信公众号的支付,花了一天多时间,终于折腾出来了!鉴于坑爹的微信官方没有提供Java版的demo,所以全靠自己按照同样坑爹的文档敲敲敲,所以记录下来,以供自己及后来人参考,不足之处,还请指正。首先,我们贴出调用支付接口的H5页面,当然,在这个页面之前,还需要做很多其他的操作,我们一步一步的来。坑爹的官方文档给了两个不同的支...

weixin_39890289的博客 600

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java对接微信JS支付-V3版本接口

Java对接微信JS支付V3版本接口,详细介绍了Java对接微信JS支付V3版本接口的对接流程

shyの个人笔记 2897

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java实现微信H5支付 2021-07-10

微信支付已经做烂了,没啥好讲的。记录一下。 首先微信支付流程相信大家大致都了解,不知道的自己去微信开发文档上看,很简单,我这边不多说直接上代码。 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.sp

qq_42729674的博客 1929

微信支付之Native支付&H5支付&JSAPI支付&退款

微信支付之Native支付 参考文档:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml 文章目录微信支付之Native支付前言一、开发前准备1. 设置支付目录2. 设置授权域名二、Native支付1. 统一下单接口2.支付结果通知结语 前言 随着互联网技术的不断发展,移动支付逐渐成为了一种新型的支付方式,越来越多的项目也开始加入移动支付功能,其中以微信支付最具代表。前段时间接手了一个项目,其中就有用到微信支付,接下来总结一下吧。 一、开发前准备

Cedriclo的博客 1951

整合微信和支付宝H5支付

本例是springboot+vue架构的h5支付。 1.pom.xml 中添加 支付包依赖包 <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --> <dependency> <groupId>com.alipay.sdk</grou...

weixin_38858684的博客 1049

java实现微信公众号支付

前面做了app微信支付的回调处理,现在需要做微信公众号的支付,花了一天多时间,终于折腾出来了!鉴于坑爹的微信官方没有提供java版的demo,所以全靠自己按照同样坑爹的文档敲敲敲,所以记录下来,以供自己及后来人参考,不足之处,还请指正。 首先,我们贴出调用支付接口的H5页面,当然,在这个页面之前,还需要做很多其他的操作,我们一步一步的来。 坑爹的官方文档给了两个不同的支付接口,在微信公众平台开

李小拐 YT_FOREVER 7202
下一篇: java开发记录-微信二维码支付
doingBetter
博客等级 码龄10年 1粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值