• 大小: 13KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Java
  • 标签: 微信支付  工具类  

资源简介

内含创建支付宝交易对象、创建微信交易对象、再次签名,支付、创建sign签名等方法

资源截图

代码片段和文件信息

package com.loveFly.utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.servlet.http.HttpServletRequest;

import com.alibaba.fastjson.JSONobject;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;

public class PayCommonUtil
{
public static final String TIME = “yyyyMMddHHmmss“;

/**
 * 创建支付宝交易对象
 */
public static AlipayClient getAliClient()
{
AlipayClient alipayClient = new DefaultAlipayClient(PropertyUtil.getInstance().getProperty(“AliPay.payURL“)
PropertyUtil.getInstance().getProperty(“AliPay.appId“)
PropertyUtil.getInstance().getProperty(“AliPay.privateKey“) “json“ “utf-8“
PropertyUtil.getInstance().getProperty(“AliPay.publicKey“) “RSA2“);
return alipayClient;
}

/**
 * 创建微信交易对象
 */
public static SortedMapject object> getWXPrePayID()
{
SortedMapject object> parameters = new TreeMapject object>();
parameters.put(“appid“ PropertyUtil.getInstance().getProperty(“WxPay.appid“));
parameters.put(“mch_id“ PropertyUtil.getInstance().getProperty(“WxPay.mchid“));
parameters.put(“nonce_str“ PayCommonUtil.CreateNoncestr());
parameters.put(“fee_type“ “CNY“);
parameters.put(“notify_url“ PropertyUtil.getInstance().getProperty(“WxPay.notifyurl“));
parameters.put(“trade_type“ “APP“);
return parameters;
}

/**
 * 再次签名,支付
 */
public static SortedMapject object> startWXPay(String result)
{
try
{
Map map = xmlUtil.doxmlParse(result);
SortedMapject object> parameterMap = new TreeMapject object>();
parameterMap.put(“appid“ PropertyUtil.getInstance().getProperty(“WxPay.appid“));
parameterMap.put(“partnerid“ PropertyUtil.getInstance().getProperty(“WxPay.mchid“));
parameterMap.put(“prepayid“ map.get(“prepay_id“));
parameterMap.put(“package“ “Sign=WXPay“);
parameterMap.put(“noncestr“ PayCommonUtil.CreateNoncestr());
// 本来生成的时间戳是13位,但是ios必须是10位,所以截取了一下
parameterMap.put(“timestamp“
Long.parseLong(String.valueOf(System.currentTimeMillis()).toString().substring(0 10)));
String sign = PayCommonUtil.createSign(“UTF-8“ parameterMap);
parameterMap.put

评论

共有 条评论