微信刷卡支付

网站下载Java  demo

|方法名 | 说明 |
|--------|--------|
|microPay| 刷卡支付 |
|unifiedOrder | 统一下单|
|orderQuery | 查询订单 |
|reverse | 撤销订单 |
|closeOrder|关闭订单|
|refund|申请退款|
|refundQuery|查询退款|
|downloadBill|下载对账单|
|report|交易保障|
|shortUrl|转换短链接|
|authCodeToOpenid|授权码查询openid|

* 注意:
* 证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载
* 建议将证书文件名改为复杂且不容易猜测的文件名
* 商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件
* 请妥善保管商户支付密钥、公众帐号SECRET,避免密钥泄露
* 参数为`Map<String, String>`对象,返回类型也是`Map<String, String>`
* 方法内部会将参数会转换成含有`appid`、`mch_id`、`nonce_str`、`sign\_type`和`sign`的XML
* 可选HMAC-SHA256算法和MD5算法签名
* 通过HTTPS请求得到返回数据后会对其做必要的处理(例如验证签名,签名错误则抛出异常)
* 对于downloadBill,无论是否成功都返回Map,且都含有`return_code`和`return_msg`,若成功,其中`return_code`为`SUCCESS`,另外`data`对应对账单数据

创建类继承WXPayConfig

public class MyWXConfig extends WXPayConfig {

	private byte[] certData;

	public MyWXConfig() throws Exception {
		String certPath = "src/apiclient_cert.p12";
		File file = new File(certPath);
		InputStream certStream = new FileInputStream(file);
		this.certData = new byte[(int) file.length()];
		certStream.read(this.certData);
		certStream.close();
	}

	@Override
	public String getAppID() {
		return "";
	}

	@Override
	public String getMchID() {
		return "";
	}

	@Override
	public String getKey() {
		return "";
	}

	@Override
	public InputStream getCertStream() {
		ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
        return certBis;
	}

	@Override
	public IWXPayDomain getWXPayDomain() { // 这个方法需要这样实现, 否则无法正常初始化WXPay
        IWXPayDomain iwxPayDomain = new IWXPayDomain() {
            @Override
            public void report(String domain, long elapsedTimeMillis, Exception ex) {

            }
            @Override
            public DomainInfo getDomain(WXPayConfig config) {
                return new IWXPayDomain.DomainInfo(WXPayConstants.DOMAIN_API, true);
            }
        };
        return iwxPayDomain;
    }

}

main方法直接调用测试

public class WXTest {

	public static void main(String[] args) throws Exception {

		MyWXConfig config = new MyWXConfig();
        WXPay wxpay = new WXPay(config);
        
        SortedMap<String, String> packageParams = new TreeMap<String, String>();
		packageParams.put("appid", config.getAppID());
		packageParams.put("mch_id", config.getMchID());
		packageParams.put("fee_type", "CNY");
		packageParams.put("auth_code", "");
		packageParams.put("nonce_str", WXPayUtil.generateNonceStr());
		packageParams.put("body", "缴费");
		packageParams.put("out_trade_no", "");
		packageParams.put("total_fee", "1");
		packageParams.put("spbill_create_ip", "");
		//packageParams.put("notify_url", notify_url);
		//packageParams.put("trade_type", trade_type);
		

		// 根据package数据生成预支付订单号的签名sign
		String sign = WXPayUtil.generateSignature(packageParams, config.getKey());

		// 生成需要提交给统一支付接口https://api.mch.weixin.qq.com/pay/unifiedorder 的xml数据
		packageParams.put("sign", sign);

        try {
            Map<String, String> resp = wxpay.microPay(packageParams);
            System.out.println(resp);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值