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

RV1126开发板性能实测:网络、温度与功耗全解析

本文对RV1126开发板进行了全面的性能实测,重点分析了网络性能、温度表现与功耗特性。测试发现UDP带宽可达500Mbps,但TCP性能受限于协议栈;散热设计对持续性能至关重要,大板子在AI推理和视频推流中表现更稳定。为嵌入式开发者提供了真实的选型参考和优化建议。

d3e4f的博客 266

微信支付宝app,h5支付

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

Figure_hb的博客 722

懒人精灵手游内存技术分析

教学声明:全套教程教学用到的游戏采用手游私服网游进行测试,不针对任何游戏。教学只做计算机技术研究,不做其他用途。

yizhihaoren123的博客 1656

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

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

weixin_36410293的博客 1138

从零开始用Plaxis 2D设计深基坑支护结构:含地锚与桩墙实战教程

本文提供了一份基于Plaxis 2D的深基坑支护结构设计实战教程。教程以钻孔灌注桩排桩结合预应力锚索的典型支护体系为例,详细阐述了从地质模型建立、材料参数定义(重点介绍硬化土模型)、施工阶段模拟(含开挖、锚索施加预应力和地下水渗流固结耦合分析)到结果解读与设计优化的全流程。旨在帮助岩土工程师掌握数值模拟核心,实现从经验设计到量化分析的跨越。

kotlin6android的博客 504

iPhone存储空间耗尽自救指南:从“白苹果”死锁到成功保数据刷机

本文详细介绍了iPhone存储空间耗尽导致'白苹果'死锁的解决方案,通过保留数据刷机方法成功恢复设备运行。文章分享了从失败尝试到最终成功的完整流程,包括关键操作步骤和预防措施,帮助用户在紧急情况下保住重要数据。

weixin_32578161的博客 288

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

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

砷碲 - Shendi 1万+

【异常】Python环境中没有安装 `openpyxl` 模块提示ModuleNotFoundError: No module named ‘openpyxl‘

是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。只是示例版本号,你可以根据需要选择不同的版本。安装完成后,再次尝试运行你的程序,应该就不会再出现。,这表明你的Python环境中缺少。运行一个Python程序时遇到了。如果由于某些原因你无法直接使用。,你可以指定版本号来安装,这里。要解决这个问题,你需要安装。

奶爸的编程之路,也就一周冷个三天 3398

微信H5支付 java代码 详细

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

blueAndSmile的博客 2204

AI上推荐 之 AutoRec与Deep Crossing模型(改变神经网络的复杂程度)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 5666

【UML】-- 期末试题题库含答案(各章题目、选择题、填空题、简答题、画图题)

每章都有对应的题目和答案,选择题,填空简答,大题,答案已标红,方便大家观看

个人博客 1万+

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

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

qq_32138419的博客 3442

Mamba-YOLOv8深度解析:基于状态空间模型的下一代目标检测架构(含完整代码与实战部署)文末含资料链接!

通过本文的完整指南,您将掌握从理论创新到工程落地的全流程技术细节。立即动手实践,开启目标检测的新纪元!

FJN110的博客 518

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

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

weixin_39732027的博客 753

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

weixin_39890289的博客 600

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

shyの个人笔记 2897

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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、付费专栏及课程。

余额充值