时间:2021-05-19
背景
由于项目是采用java编写的,微信包括微信支付大都是php相关,于是微信支付官方文档对java的支持就不是很友好,在网上找了很多文章,基本上没有一篇是真正跑的通的,经过一番整理,先将java接入微信支付详细流程总结出来以便后续使用。
步骤一
准备阶段:已认证微信号,且通过微信支付认证,这个可以看微信文档,很详细,这里就不再重复。
步骤二
配置授权目录,官方推荐使用https类型的url,不知道http能不能行,个人也推荐使用https的保证不会错。
配置授权域名
步骤三
微信支付二次开发所需要的参数:
APP_ID,APP_KEY,PARTNER,PARTNER_KEY(AppSecret)
APP_ID和PARTNER_KEY(AppSecret)
PARTNER
APP_KEY(自行设置32位字符)
步骤四
4.1通过页面跳转到确认支付页面,其中的redirect_uri必须是配置授权目录下的
<html> <head> <title>支付测试</title> </head> <body> <a href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx619890d997071358&redirect_uri=https%3A%2F%2Fm.yangji.com%2Fpay%2FpayTest.jsp&response_type=code&scope=snsapi_base&state=123#wechat_redirect">支付测试</a> </body></html>4.2 获取到openid,再经服务器向微信请求获取prepay_id,封装字段并进行签名后通过jsapi调起微信支付
网页端
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:///pay/unifiedorder"; String xml = ArrayToXml(paraMap); String xmlStr = HttpKit.post(url, xml); // 预付商品id String prepay_id = ""; if (xmlStr.indexOf("SUCCESS") != -1) { Map<String, String> map = doXMLParse(xmlStr); prepay_id = (String) map.get("prepay_id"); } String timeStamp = create_timestamp(); String nonceStr = create_nonce_str(); Map<String, String> payMap = new HashMap<String, String>(); payMap.put("appId", appid); payMap.put("timeStamp", timeStamp); payMap.put("nonceStr", nonceStr); payMap.put("signType", "MD5"); payMap.put("package", "prepay_id=" + prepay_id); String paySign = getSign(payMap, paternerKey); payMap.put("pg", prepay_id); payMap.put("paySign", paySign); // 拼接并返回json StringBuilder sBuilder = new StringBuilder("[{"); sBuilder.append("appId:'").append(appid).append("',") .append("timeStamp:'").append(timeStamp).append("',") .append("nonceStr:'").append(nonceStr).append("',") .append("pg:'").append(prepay_id).append("',") .append("signType:'MD5',") .append("paySign:'").append(paySign).append("'"); sBuilder.append("}]"); response.getWriter().print(sBuilder.toString()); response.getWriter().close(); } catch (Exception e) { e.printStackTrace(); } }测试结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
3月15日消息,近日,网上流传了一份微信、支付宝接入银联的方案。接入方案显示,微信和支付宝的收单业务将接入银联流程。此外,针对联机交易处理、相关原则、微信和支付
本篇简单介绍AndroidApp中接入微信支付,包括App内支付和扫码支付。分享+支付pofei微信支付wechat官方接入文档App内支付源码下载主要流程:1
近日,网上流传一份微信、支付宝接入银联的方案,介绍了微信、支付宝收单业务接入银联的具体流程。银联回应证券时报,该方案属实,但尚处于初始阶段。微信和支付宝均未做具
一、微信APP支付接入商户服务中心[申请流程指引](https://open.weixin.qq.com/cgi-bin/showdocument?ac
前面讲了怎么实现微信支付,详见博文:PHP实现微信支付(jsapi支付)流程和ThinkPHP中实现微信支付(jsapi支付)流程。由于业务需求,还需要有微信退