java实现APP微信支付——工具

下面是我修改后的代码

←←←←←← WXController

WXservice

import java.util.Map;

public interface WXservice {
          
   
    Map<String, String> dounifiedOrder(String attach, String total_fee) throws Exception;
    String payBack(String notifyData);
}

WXserviceImpl

下面都放到util 里

OurWxConfig

WxMD5Util

import com.github.wxpay.sdk.WXPayConstants;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Map;
import java.util.Set;
/**
 * @Author: zyh
 * @Date: 2020/6/20 19:37
 */
public class WxMD5Util {
          
   
    public String getSign(Map<String, String> data) throws Exception {
          
   
        OurWxConfig config = new OurWxConfig();
        Set<String> keySet = data.keySet();
        String[] keyArray = keySet.toArray(new String[keySet.size()]);
        Arrays.sort(keyArray);
        StringBuilder sb = new StringBuilder();
        for (String k : keyArray) {
          
   
            if (k.equals(WXPayConstants.FIELD_SIGN)) {
          
   
                continue;
            }
            if (data.get(k).trim().length() > 0) // 参数值为空,则不参与签名
                sb.append(k).append("=").append(data.get(k).trim()).append("&");
        }
        sb.append("key=").append(config.getKey());
        MessageDigest md = null;
        try {
          
   
            md = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
          
   
            e.printStackTrace();
        }
        byte[] array = new byte[0];
        try {
          
   
            array = md.digest(sb.toString().getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
          
   
            e.printStackTrace();
        }
        StringBuilder sb2 = new StringBuilder();
        for (byte item : array) {
          
   
            sb2.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
        }
        return sb2.toString().toUpperCase();
    }
}

WxPayTool

经验分享 程序员 微信小程序 职场和发展