完整版"/>
微信Navicat(二维码扫码)支付(Java开发)完整版
一:准备工作
1:先去微信公众平台注册一个公众号,选择服务号
2:去微信商户平台注册一个商户号,用于收款
3:在商户号中配置对应的公众号的APPID
4:支付结果异步通知(需要重点注意)
注意:请先详细查看官方文档按步骤开发,一切以官方文档为主 微信Navicat支付官方文档
5:测试的时候一定要使用内网穿透软件,否则回调时会报错
二:开发代码
WeChatPayConfig:
public class WeChatPayConfig {//公众号APPIDprivate String APPID = "";//商户号KEYprivate String KEY = "";//商户号IDprivate String MCHID = "";//支付完成后微信回调地址,需要外网能访问要是域名,不能是127.0.0.1跟localhostprivate String NOTIFY_URL = "";
}
WeChatPayServcie:
public interface WeChatPayServcie {//微信支付下单public Map<String,String> getWxpayUrl(Map<String, String> sourceMap);//订单查询public String orderQuery(String out_trade_no);
}
@Service
public class WeChatPayServiceImpl implements WeChatPayServcie {/*** 微信支付请求* @param sourceMap* @return*/public Map<String,String> getWxpayUrl(Map<String, String> sourceMap) {SortedMap<String, Object> signParams = new TreeMap<String, Object>();String nonce_str = UUID.randomUUID().toString().trim().replaceAll("-", "");signParams.put("appid", PayConfig.APPID);signParams.put("mch_id",PayConfig.MCHID);signParams.put("nonce_str",sourceMap.get("nonce_str"));signParams.put("product_id",sourceMap.get("prod_id"));signParams.put("body",sourceMap.get("body"));signParams.put("out_trade_no",sourceMap.get("out_trade_no"));signParams.put("total_fee",sourceMap.get("total_fee"));signParams.put("spbill_create_ip", WxUtil.getIp());signParams.put("notify_url",PayConfig.NOTYFLY_URL);signParams.put("trade_type","NATIVE");String sign = WxUtil.createSign(signParams,PayConfig.KEY);signParams.put("sign",sign);String xmlPackage = WxUtil.parseMapXML(signParams);Map<String, Object> resultMap = new HashMap();try {String result = HttpUtil.post("
更多推荐
微信Navicat(二维码扫码)支付(Java开发)完整版
发布评论