资源简介
该项目是用Java实现的微信支付Demo实例,本人测试流程可以跑通,大家下载后需要修改微信支付的配置信息……
代码片段和文件信息
package com.wx.component;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.util.HashMap;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import org.apache.http.HttpResponse;
import org.apache.struts2.ServletActionContext;
import com.google.gson.Gson;
import com.wx.utils.GetWxOrderno;
import com.wx.utils.RequestHandler;
import com.wx.utils.Sha1Util;
import com.wx.utils.TenpayUtil;
/**
* 欢迎大家关注双面人的网络世界博客 http://blog.csdn.net/qq_30997391
* 大家微信支付时会遇到各种坑,但是我这个demo基本把所有的坑都遇到了,然后写出来的,应该没太大问题,
* 微信要在微信的浏览器才能测试,所以每次都要发布到自己的服务器然后用微信去测试。
* 测试过程中可以看看这个页面的log,会发现到底是哪里出了问题。然后更改对应的内容就好了。
* 只要把参数配置正确了,参照微信的官方文档,微信支付就不会有问题了。
*
* @author aaron
*
*/
public class TopayAction extends HttpServlet {
private String timeStamp;
private String nonceStr;
private String packageStr;
private String paySign;
/**
* 获取JSAPI签名
*
* @throws NoSuchProviderException
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public String WxJsApiCheck() {
String jsapi_ticket = getJsapiTicket();// 看清楚.这是ticket..用token在https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi里换的
String nonce_str = Sha1Util.getNonceStr();// 随机字符串
String timestamp = Sha1Util.getTimeStamp();// 时间戳
String appid = “wxb9*************“;// APPID谁在问我为什么报没有APPID就***吧
String url = “www.{example}.com/{project_name}/pay.jsp“;// 发起支付的前端页面的URL地址.而且...而且必须在微信支付里面配置才行!!!
String sign = null;
try {
SortedMap packageParams = new TreeMap();
packageParams.put(“jsapi_ticket“ jsapi_ticket);
packageParams.put(“noncestr“ nonce_str);
packageParams.put(“timestamp“ timestamp);
packageParams.put(“url“ url);
sign = Sha1Util.createSHA1Sign(packageParams);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String res = “appId : \““ + appid + “\“timestamp : \““ + timestamp
+ “\“ nonceStr : \““ + nonce_str + “\“ signature : \““ + sign
+ “\““;
return res;
}
private String getJsapiTicket() {
try {
// 直接访问url来获取返回数据
// 这里必须是https,该死的微信非得用https,否则获取不到数据的
String returnData = getReturnData(“https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxb9**********&secret=*******************“);
Gson gson = new Gson();
TokenClass tokenClass = gson.fromJson(returnData TokenClass.class);
String token = tokenClass.getAccess_token();
String url = “https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=“
+ token + “&type=jsapi“;
String returnData2 = getReturnData(url);
Ticket ticket = gson.fromJson(returnData2 Ticket.class);
if (ticket.getErrcode() == 0) {
return
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-08-05 15:49 WXPayDemo\
文件 1246 2016-08-05 16:01 WXPayDemo\.classpath
目录 0 2016-08-05 14:58 WXPayDemo\.myeclipse\
文件 532 2016-08-05 15:49 WXPayDemo\.myhibernatedata
文件 288 2016-08-05 14:58 WXPayDemo\.myme
文件 240 2016-08-05 15:49 WXPayDemo\.mystrutsdata
文件 2097 2016-08-05 15:49 WXPayDemo\.project
目录 0 2016-08-05 16:05 WXPayDemo\.settings\
文件 488 2016-08-05 14:58 WXPayDemo\.settings\.jsdtscope
文件 85 2016-08-05 16:05 WXPayDemo\.settings\org.eclipse.core.resources.prefs
文件 387 2016-08-05 14:58 WXPayDemo\.settings\org.eclipse.jdt.core.prefs
文件 444 2016-08-05 14:58 WXPayDemo\.settings\org.eclipse.wst.common.component
文件 245 2016-08-05 14:58 WXPayDemo\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2016-08-05 14:58 WXPayDemo\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2016-08-05 14:58 WXPayDemo\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 447 2016-08-05 15:49 WXPayDemo\.springBeans
目录 0 2016-08-05 15:49 WXPayDemo\src\
文件 2719 2016-08-05 16:01 WXPayDemo\src\applicationContext.xm
目录 0 2016-08-05 16:04 WXPayDemo\src\com\
目录 0 2016-08-05 16:04 WXPayDemo\src\com\wx\
目录 0 2016-08-05 16:17 WXPayDemo\src\com\wx\component\
文件 15537 2016-08-05 16:59 WXPayDemo\src\com\wx\component\TopayAction.java
目录 0 2016-08-05 16:04 WXPayDemo\src\com\wx\utils\
文件 3493 2016-08-01 22:27 WXPayDemo\src\com\wx\utils\GetWxOrderno.java
目录 0 2016-08-05 16:04 WXPayDemo\src\com\wx\utils\http\
文件 2041 2016-08-01 21:29 WXPayDemo\src\com\wx\utils\http\HttpClientConnectionManager.java
文件 1883 2016-08-01 21:29 WXPayDemo\src\com\wx\utils\http\HttpConnect.java
文件 3509 2016-08-01 21:29 WXPayDemo\src\com\wx\utils\http\HttpRequest.java
文件 1796 2016-08-01 21:29 WXPayDemo\src\com\wx\utils\http\HttpResponse.java
文件 706 2016-08-01 21:29 WXPayDemo\src\com\wx\utils\http\HttpResultType.java
文件 1242 2016-08-01 21:29 WXPayDemo\src\com\wx\utils\http\MySSLSocketFactory.java
............此处省略75个文件信息
相关资源
- 微信支付java版完整demo-Eclipse项目包含
- 微信支付 java版demo
- Java实现微信支付demo
- 微信支付jar包.
- 微信支付(JSAPI) 配置后可直接使用
- 微信公众号-h5支付(完整demo+代码说明
- 小程序支付/公众号支付 Java后台源码
- Java后台源码 项目采用SpringBoot框架 可
- PayCommonUtil
- Java微信支付-微信企业付款到个人
- 微信扫码支付源码
- 精简版微信支付没有任何多余业务
- 小程序微信支付后台Java
- 微信APP支付服务端和Android 端详解及其
- JavaH5微信支付
- 微信支付服务端JavaEE
- java后台微信支付工具类
- java 微信公众号支付完整版 demo自己刚
- Android微信支付集成
- 微信支付-商户支付模式一url接口回调
- Unity微信支付demo
- 小程序微信支付java后台
- java接入微信APP支付/支付宝APP支付
- java版本微信公众号开发,可创建菜单
- 微信支付 Java SDK
- java微信支付H5、小程序和SDK
- 微信H5支付 java详细版
- Delphi调用微信AndroidSDK(微信支付)
- Java微信支付-微信App支付服务端源代码
- Android微信支付官方Demo
评论
共有 条评论