Java微信支付API文档测试 - Go语言中文社区

Java微信支付API文档测试


Java微信支付API文档测试(注意用的微信开发文档是什么支付)

 

本人用的刷卡支付( 之前看错了,一直在看扫码支付,心塞 ),如图

 

首先,做一系列准备,获取appid等等,可以写在一个配置文件里面,如图

 

获取配置文件的信息,可以写一个util,从类路径下读取属性文件,如下

import java.io.IOException;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class WxpayConfigUtil {
	private static final Log LOG = LogFactory.getLog(WxpayConfigUtil.class);
	private static Properties properties = new Properties();
	static {
        try {
            // 从类路径下读取属性文件
            properties.load(WxpayConfigUtil.class.getClassLoader()
                    .getResourceAsStream("WxpayConfig.properties"));
        } catch (IOException e) {
            LOG.error(e);
        }
    }
	
	public static String readConfig(String key) {
        return (String) properties.get(key);
    }
}

 

其中支付、查询、退款、退款查询等需要用到WxPayConfig对应的方法,所以需要写一个实现WxPayConfig接口的配置文件,重写方法即可,如下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import com.github.wxpay.sdk.WXPayConfig;

public class WxConfig implements WXPayConfig{
	
	private boolean isSub = true;
	
	public Map<String, String> getMap(){
		Map<String, String> map = new HashMap<String, String>();
		if(isSub){
			map.put("sub_mch_id", this.getSubMchID());
		}
		return map;
	}
	
	public WxConfig() {
		
	}
	public WxConfig(boolean isSub) {
		this.isSub = isSub;
	}
	
	@Override
	public String getAppID() {
		return WxpayConfigUtil.readConfig("APPID");
	}

	@Override
	public String getMchID() {
		return WxpayConfigUtil.readConfig("MCHID");
	}
	
	
	public String getSubAppID(){
		return WxpayConfigUtil.readConfig("SUB_APPID");
	}
	
	public String getSubMchID(){
		return WxpayConfigUtil.readConfig("SUB_MCHID");
	}
	
	@Override
	public String getKey() {
		return WxpayConfigUtil.readConfig("KEY");
	}	
	@Override
	public InputStream getCertStream() {
		FileInputStream fis = null;
		try {
			fis = new FileInputStream(new File(this.getClass().getClassLoader().getResource("XX.xx").getPath()));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		return fis;
	}

	@Override
	public int getHttpConnectTimeoutMs() {
		return 0;
	}

	@Override
	public int getHttpReadTimeoutMs() {
		return 0;
	}

}

 

准备工作算是好了,下面写第一个方法,刷卡支付

注意需要先定义一些属性,也可以不定义,之后每个方法都需要新创建对象

比如:

 

刷卡的方法,参数可以不用传这么多,传必要的就可以

 

注意,其中有数据可以乱写,但是要注意字数,ip地址是测试支付的手机ip等

 

然后,主函数内调用即可:

控制台就会返回相应的数据,然后微信就会弹出支付的窗口,支付即可。

 

根据刚才支付的结果可以查询订单,如下:

 

控制台会打印相应的数据(部分id没展示):

----------查询----------
{transaction_id=4200000186201808068346690710, trade_state=SUCCESS, bank_type=CFT, return_msg=OK, fee_type=CNY, cash_fee=1, out_trade_no=201808007496748980290321, total_fee=1, trade_state_desc=支付成功, trade_type=MICROPAY, result_code=SUCCESS, attach=, time_end=20180806172129, is_subscribe=N, return_code=SUCCESS}

 

同理,主函数进行测试即可,注意传入什么参数,怎么调用,最后得到什么结果(最近师傅给我说的)。

本人写给自己看的随笔,欢迎指出问题

 

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42512937/article/details/81458787
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:25:11
  • 阅读 ( 1067 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢