• 大小: 3.41MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-15
  • 语言: Java
  • 标签: 微信支付  weixinpay  

资源简介

该项目是用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\.mymetadata
     文件         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.xml
     文件          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.xml
     目录           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个文件信息

评论

共有 条评论