一、准备
注册微信商户平台,https://pay.weixin.qq.com
注册开放平台 https://open.weixin.qq.com
1.添加应用 2.提交开发支付权限的功能
重点
搞懂支付的业务流程 :https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3
其时,对于支付来说,做实现完成,也要考虑,支付中,支付完成,退款中,已退款,结算 等状态。
如果仅仅,只是一个支付的话。不是这样了。
qq群:436498871
二、开发
由于微信的使用的xml 格式的 报文。自己写相应解析,加密也是勾勾的。就用了github 上一个哥们写的
https://github.com/louiseliu/weixin-pay
用gradle 构建的项目,也是勾勾的。不过有相应的依赖什么的。
我已经打包有需要联系我。
maven 配置
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>com.wein</groupId>
<artifactId>wexin-pay-1.1</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${basedir}/libs/weixin-pay-1.1.jar</systemPath>
</dependency>
(2)
https://pay.weixin.qq.com/index.php/account/api_cert
下载证书,设置apiKey
三、配置相应的基本信息
/**
* 配置微信支付
* */
//appId
Configure.setAppID(AppConstant.WEIXIN_SHANGHU_OPENPLATFORM_APPID);
//商户号
Configure.setMchID(AppConstant.WEIXIN_SHANGHU_MCHID);
String path=applicationContext.getClass().getResource("/").getPath();
//p12key文件的位置
Configure.setCertLocalPath(path+"cert/apiclient_cert.p12");
Configure.setCertPassword(AppConstant.WEIXIN_SHANGHU_MCHID);
Configure.setSubMchID(AppConstant.WEIXIN_SHANGHU_MCHID);
//支付接口调用的apiKey
Configure.setKey(AppConstant.WEIXIN_SHANGHU_KEY);
//设置微信支付回调地址
Configure.setNotifyCallbackUrl("http://192.168.1.114:9967/order/app/v1/secure/order/reCallCheckPaySatus");
创建统一付款定单
//设置开放平台的appId
payPackage.setAppid(AppConstant.WEIXIN_SHANGHU_OPENPLATFORM_APPID);
// 设置商户平台的id
payPackage.setMch_id(AppConstant.WEIXIN_SHANGHU_MCHID);
//设置商品描述信息(128)
payPackage.setBody(productName);
payPackage.setGoods_tag("");
//附加数据
payPackage.setAttach("orderid:11");
//设置设备信息
payPackage.setDevice_info("");
//获取设备ip
try {
//终端IP
String hostIp=NetworkUtil.getIpAddress(request);
payPackage.setSpbill_create_ip(hostIp);
} catch (IOException e) {
e.printStackTrace();
payPackage.setSpbill_create_ip("127.0.0.1");
}
//设置总额 单位:分
payPackage.setTotal_fee("100");
//用户在系统中的id
//payPackage.setOpenid(openId);
payPackage.setTrade_type("APP");
//随机字符串
String randDomStr=UUID.randomUUID().toString().replace("-","");
payPackage.setNonce_str(randDomStr);
//设置定单号
payPackage.setOut_trade_no(outTradeNo);
String replyXml=PayUtils.generatePayNativeReplyXML(payPackage);