註冊微信商戶平臺,https://pay.weixin.qq.comphp
註冊開放平臺 https://open.weixin.qq.comjava
1.添加應用 2.提交開發支付權限的功能git
搞懂支付的業務流程 :https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3github
其時,對於支付來講,作實現完成,也要考慮,支付中,支付完成,退款中,已退款,結算 等狀態。
apache
若是僅僅,只是一個支付的話。不是這樣了。api
qq羣:436498871微信
因爲微信的使用的xml 格式的 報文。本身寫相應解析,加密也是勾勾的。就用了github 上一個哥們寫的
app
https://github.com/louiseliu/weixin-pay dom
用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);