导航:首页 > 编程语言 > 微信支付回调java

微信支付回调java

发布时间:2022-07-24 13:13:55

① 微信小程序支付成功后没有回调函数返回。

看不太懂……我用java写过……,小程序支付,统一下单的过程有吗?当时测试时,我是将接收的xml写入到指定的路劲,然后在服务器的该路径下找到txt文档来验证的

② 怎么用java调用微信支付接口

1.调用微信接口授权

授权这里有两种方式,一种是snsapi_bases,另一种是snsapi_userinfo,这里官方文档介绍的比较清楚,可以参考官网

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

appid登录微信公众号-基本配置-开发者ID-APPID

redirect_uri就是一个回调地址,当你调用完微信的这个链接后,他会自动调用你定义的这个地址,返回code参数

注意,redirect_uri也需要在公众号里面配置,在接口权限-网页帐号里修改。

2.可以在页面中写一个调用授权的页面

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""

<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<title>用户管理</title>
<scripttype="text/javascript"src="js/jquery/jquery-1.11.1.min.js"></script>
<scripttype="text/javascript">
functionoauth(){
varurl="<%=basePath%>getOauth2Url";
$.ajax({
url:url,
success:function(result){
//varresult=eval('('+result+')');
if(result.success){
location.href=result.obj;//
}else{
}
}
});
}
</script>
</head>

<body>
<ponclick="oauth()">非用户认证鉴权</p>
</body>
</html>
</pre><preclass="html"name="code"snippet_file_name="blog_20160608_3_8825275"code_snippet_id="1711669">java中的方法

<preclass="html"name="code">/**
*获取授权地址
*@return
*/
@RequestMapping(value="/getOauth2Url",method=RequestMethod.GET)
publicvoidgetOauth2Url(Modelmodel,HttpServletResponseresponse){
Jsonj=newJson();
try{
Stringauthorize_url=PayConfig.AUTHORIZE_URL;
StringappId=PayConfig.APPID;
Stringredirect_uri=PayConfig.REDIRECT_URI;
Stringurl=authorize_url+"?appid="+appId+"&redirect_uri="+urlEncodeUTF8(redirect_uri)+"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
System.out.println(url);
j.setSuccess(true);
j.setMsg("保存成功!");
j.setObj(url);
write(response,JSON.toJSONString(j));
}catch(Exceptione){
j.setMsg(e.getMessage());
}
}

/**
*对回调地址进行encode
*@paramsource
*@return
*/
(Stringsource){
Stringresult=source;
try{
result=java.net.URLEncoder.encode(source,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnresult;
}
<preclass="html"name="code"> /**
*获取授权地址
*@return
*/
@RequestMapping(value="/getOauth2Url",method=RequestMethod.GET)
publicvoidgetOauth2Url(Modelmodel,HttpServletResponseresponse){
Jsonj=newJson();
try{
Stringauthorize_url=PayConfig.AUTHORIZE_URL;
StringappId=PayConfig.APPID;
Stringredirect_uri=PayConfig.REDIRECT_URI;
Stringurl=authorize_url+"?appid="+appId+"&redirect_uri="+urlEncodeUTF8(redirect_uri)+"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
System.out.println(url);
j.setSuccess(true);
j.setMsg("保存成功!");
j.setObj(url);
write(response,JSON.toJSONString(j));
}catch(Exceptione){
j.setMsg(e.getMessage());
}
}

/**
*对回调地址进行encode
*@paramsource
*@return
*/
(Stringsource){
Stringresult=source;
try{
result=java.net.URLEncoder.encode(source,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnresult;
}

packagecom.crm.common;

publicclassPayConfig{
publicstaticStringAPPID="wx91af774aae000dcb";//APPID
publicstaticStringMCHID="1347742701";//商户编号
publicstaticStringPAYKEY="";//支付密钥
publicstaticStringAPPSECRET="";//公众号-基本配置-APPSECRET密钥
publicstaticStringREDIRECT_URI="
回调地址
publicstaticStringAUTHORIZE_URL="
微信授权地址
publicstaticStringACCESS_TOKEN_URI="

publicstaticStringSCOPE="snsapi_base";//snsapi_base和snsapi_userinfo
publicstaticStringGRANT_TYPE="grant_type";//获取openid时用,不用改
}


3.成功后,回到你当时写的回调地址

<preclass="html"name="code">/**
*微信授权后的回调地址的方法
*@paramcode
*@paramresponse
*/
@RequestMapping(value="/authorize",method=RequestMethod.GET)
publicvoidauthorize(Stringcode,HttpServletResponseresponse,Stringopenid){
code="test";
Stringaccess_token_uri=PayConfig.ACCESS_TOKEN_URI;
Stringappid=PayConfig.APPID;
Stringsecret=PayConfig.APPSECRET;
access_token_uri=access_token_uri.replace("APPID",appid).replace("SECRET",secret).replace("CODE",code);
System.out.println(access_token_uri);
if(openid!=null){
UniteOrderorder=getUniteOrder(openid);
StringreqXML=PayImpl.generateXML(order,PayConfig.PAYKEY);
StringrespXML=PayImpl.requestWechat(ORDER_URL,reqXML);
System.out.println("respXML="+respXML);
UniteOrderResultresult=(UniteOrderResult)PayImpl.turnObject(UniteOrderResult.class,respXML);
getWechatPay(result);
}
}

③ 用Java怎么实现微信支付

具体方法步骤:

一、准备阶段:已认证微信号,且通过微信支付认证,这个可以看微信文档,很详细,这里就不再重复。

④ 微信支付成功后返回postData xml 用户信息java怎么获取

java有dom4j 去解析xml。


publicstaticMap<String,String>parseXml(HttpServletRequestrequest)
throwsException{
//解析结果存储在HashMap
Map<String,String>map=newHashMap<String,String>();
InputStreaminputStream=request.getInputStream();
//读取输入流
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(inputStream);
//得到xml根元素
Elementroot=document.getRootElement();
//得到根元素的所有子节点
List<Element>elementList=root.elements();

//遍历所有子节点
for(Elemente:elementList)
map.put(e.getName(),e.getText());

//释放资源
inputStream.close();
inputStream=null;

returnmap;
}

后面取值不用我写了把。Map类型

⑤ 用Java怎么实现微信支付

具体方法步骤:

一、准备阶段:已认证微信号,且通过微信支付认证,这个可以看微信文档,很详细,这里就不再重复。

阅读全文

与微信支付回调java相关的资料

热点内容
传奇特殊命令 浏览:671
怎么查移动定向流量使用的app 浏览:80
进入组策略的命令 浏览:137
python数据结构和内存 浏览:25
python软件功能简介 浏览:784
外国程序员一般多少岁退休 浏览:917
怎么看linux和时间服务器 浏览:680
程序员搞笑花名 浏览:501
dota2怎么设置国服服务器地址 浏览:212
单片机高电平驱动 浏览:115
ios多选文件夹 浏览:909
加强行车调度命令管理 浏览:243
服务器已禁用什么意思 浏览:150
部队命令回复 浏览:755
神奇宝贝服务器地图怎么设置 浏览:382
加密算法输出固定长度 浏览:862
程序员去重庆还是武汉 浏览:121
服务器如何撤销网页登录限制 浏览:980
微信公众平台php开发视频教程 浏览:628
怎么看苹果授权绑定的app 浏览:255