java小程序完成微信支付

本文介绍了使用Java进行小程序微信支付的开发指南,包括创建预支付ID、工具类的使用、platPayConfig配置以及微信支付实体类PlatPay的详细说明。提供了相关文档链接以供参考,如有疑问可直接询问。
摘要由CSDN通过智能技术生成

小程序支付开发指引
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_2.shtml

说明:写的比较乱,如果有问题或者不懂的地方,艾特我就行。

创建预支付ID

/*
    创建支付信息表
    返回值为:map前端直接调用即可完成支付
	PlatPay :这是一个实体类,用来存放调用微信支付所传递的信息,最下面有实体类
	
    */
    @Override
    @Transactional
    public Map insertPlatPayReturnJson(PlatPay platPay){
   
        //工具类
        PayUtils payUtils = new PayUtils();
        //返回给前端的必要参数
        Map<String, Object> map = new HashMap<String, Object>();
        platPay.setCreateTime(DateUtils.getNowDate());
        try {
   
            //1、生成预支付ID
            String prepay_id = payUtils.CreateOrder(platPay.getOrderAmount(), platPay.getPayDescription(), platPay.getOpenid(), platPay.getOrderNumber());
            if(ObjectUtils.isEmpty(prepay_id)) {
   
                return map;
            }else {
   
                //2、预支付ID不为空,生成返回值信息
                map = payUtils.returnToReceptionJson(platPay.getOrderNumber(), prepay_id);
                //这是自己的逻辑结构了======3、插入支付信息表
                platPayMapper.insertPlatPay(platPay);
                //System.out.println("map++++"+map.toString());
                    return map;
            }
        }catch (Exception e){
   
            e.printStackTrace();
            return map1;
        }
        }else {
   
            return map1;
        }
    

工具类

package com.ruoyi.common.utils;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.ruoyi.common.constant.PayConfig;
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
import com.wechat.pay.contrib.apache.httpclient.auth.AutoUpdateCertificatesVerifier;
import com.wechat.pay.contrib.apache.httpclient.auth.PrivateKeySigner;
import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Credentials;
import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Validator;
import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GeodeticCurve;
import org.gavaghan.geodesy.GlobalCoordinates;
import org.springframework.security.core.parameters.P;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.*;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.text.SimpleDateFormat;
import java.util.*;

import org.junit.After;
import org.junit.Before;


/**
 * @author fj
 * @date 2022-09-24 08:54
 * @description 微信支付工具类
 */

public class PayUtils {
   


    /**
     * 获取签名中的方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值