资源简介
spring+mybatis接入微信支付,支付宝支付(包含微信公众号支付和H5支付),可以作为独立的模块使用也可以作为公共的支付接口
代码片段和文件信息
package com.lebo.pay.client;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.InputStreamEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.lebo.pay.config.WechatConfig;
import com.lebo.pay.entity.WechatRefund;
import com.lebo.pay.entity.WechatRefundQuery;
import com.lebo.pay.entity.WechatUnifiedOrder;
import com.lebo.util.SignUtil;
import com.lebo.util.WebUtils;
import com.lebo.util.xmlUtil;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.TreeMap;
/**
* 微信交易客户端
* @author chenrui
* @date 2018/06/11
*/
public class WechatClient {
private String app_id;
private String mch_id;
private String app_secret;
private String trade_type;
private static Logger logger = LoggerFactory.getLogger(WechatClient.class);
public WechatClient(String app_id String mch_id String app_secret String trade_type) {
this.app_id = app_id;
this.mch_id = mch_id;
this.app_secret = app_secret;
this.trade_type = trade_type;
}
/**
* 统一下单会自动签名和补上noce_str
* @return 下单后返回信息
*/
public WechatUnifiedOrder.Response unifiedOrder(WechatUnifiedOrder unifiedOrder){
unifiedOrder.setAppid(this.app_id);
unifiedOrder.setMch_id(this.mch_id);
if(StringUtils.isBlank(unifiedOrder.getTrade_type())){
unifiedOrder.setTrade_type(this.trade_type);
}
//unifiedOrder.setSign_type(“MD5“);
unifiedOrder.setNotify_url(WechatConfig.NOTIFY_PAY);
unifiedOrder.setLimit_pay(“no_credit“);
unifiedOrder.setNonce_str(nonce_str(16));
unifiedOrder.setSign(sign(SignUtil.bean2TreeMap(unifiedOrder)).toUpperCase());
String tempxmlStr = xmlUtil.beanToxml(new ByteArrayOutputStream() unifiedOrder);
String requestxml = tempxmlStr!= null?tempxmlStr.substring(55):““;
logger.debug(“xml转义后内容:“+requestxml);
try {
InputStreamEntity inputStreamEntity = new InputStreamEntity(
new ByteArrayInputStream(requestxml.getBytes(“UTF-8“)) ContentType.APPLICATION_xml);
String resultxml = WebUtils.post(WechatConfig.UNIFIEDORDER_URLinputStreamEntity);
logger.debug(“微信返回内容:“+resultxml);
return resultxml!= null
?xmlUtil.xmlToBean(resultxml WechatUnifiedOrder.Response.class)
:new WechatUnifiedOrder.Response(“FAIL“);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return new WechatUnifiedOrder.Response(“FAIL“);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-14 16:47 payDemo\
文件 1075 2018-08-10 17:01 payDemo\.classpath
文件 44 2018-08-07 21:05 payDemo\.gitignore
文件 1083 2018-08-14 16:49 payDemo\.project
目录 0 2018-08-14 16:47 payDemo\.settings\
文件 567 2018-08-07 21:06 payDemo\.settings\.jsdtscope
文件 430 2018-08-07 21:09 payDemo\.settings\org.eclipse.jdt.core.prefs
文件 90 2018-08-07 21:09 payDemo\.settings\org.eclipse.m2e.core.prefs
文件 732 2018-08-07 21:09 payDemo\.settings\org.eclipse.wst.common.component
文件 321 2018-08-07 21:09 payDemo\.settings\org.eclipse.wst.common.project.facet.core.prefs.xm
文件 346 2018-08-07 21:09 payDemo\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2018-08-07 21:06 payDemo\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2018-08-07 21:06 payDemo\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 50 2018-08-07 21:09 payDemo\.settings\org.eclipse.wst.validation.prefs
目录 0 2018-08-14 16:47 payDemo\bin\
目录 0 2018-08-14 16:47 payDemo\bin\com\
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\pay\
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\pay\client\
文件 3839 2018-08-07 21:05 payDemo\bin\com\lebo\pay\client\WechatClient.class
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\pay\config\
文件 1645 2018-08-07 21:05 payDemo\bin\com\lebo\pay\config\AliPayConfig.class
文件 1921 2018-08-07 21:05 payDemo\bin\com\lebo\pay\config\WechatConfig.class
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\pay\controller\
文件 4585 2018-08-07 21:05 payDemo\bin\com\lebo\pay\controller\ba
文件 6348 2018-08-07 21:05 payDemo\bin\com\lebo\pay\controller\PayController.class
文件 2412 2018-08-07 21:05 payDemo\bin\com\lebo\pay\controller\WxApiController.class
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\pay\dao\
文件 472 2018-08-07 21:05 payDemo\bin\com\lebo\pay\dao\DAO.class
文件 2871 2018-08-07 21:05 payDemo\bin\com\lebo\pay\dao\DaoSupport.class
目录 0 2018-08-14 16:47 payDemo\bin\com\lebo\pay\entity\
............此处省略150个文件信息
- 上一篇:UDP局域网连接
- 下一篇:区块链技术深度剖析.ppt版
相关资源
- 鸣鹤房产中介版v1.2.6开源公众号应用
- 阿狸子微信产品竞价单页 解密版
- 微信公众平台搭建与开发揭秘2版代码
- 限行提醒 sx_xxtx 7.2.7.zip
- 恶搞好玩的公众号吸粉好工具
- 微信扫码支付模式二。配置参数就能
- 突破一个公司最多可以注册2个公众号
- 基于微信公众平台运行的智慧校园一
- 微信公众平台开发最佳实践 源代码
- 爬取微信公众号中的历史消息点赞量
- IE_Spy.rar
- 使用springboot方式简单集成支付宝支付
- e语言-迷离易语言微信公众号开发教程
- 2019最新.Net MVC微信授权登录及微信支
- 微擎微赞通用功能模块米花同城社区
- 分销、商城、微信公众号、小程序
- 米花同城公众号7.0.5版,亲测可用,修
- 中信银行支付文档和demo,包括微信和
- 微信支付宝及时到账网站源码
- zzpay开源个人微信和支付宝免签收款系
- 2018最新帝国CMS内核微信群公众号二维
- 微信小程序商城 + APP商城 + 公众号商
- 最新免公众号-微信抢红包源码.rar
- H5商城,微商城,网页商城
- 《人人都是产品经理2.0》_微信公众号
- 啦啦外卖跑腿小程序 we7_wmall 18.4全开
- 微信公众平台企业应用开发实战.刘捷
- 微信公众号开发DEMO
- delphi 实现微信开发接入微信公众号平
- .netMVC框架微信公众号支付
评论
共有 条评论