資源簡(jiǎn)介
# wxpay_jsapi
Java實(shí)現(xiàn)JsApi方式的微信支付。進(jìn)行JsApi支付,需要先通過https://api.mch.weixin.qq.com/pay/unifiedorder 獲得一個(gè)prepay_id
```java
UnifiedOrderReqData reqData = new UnifiedOrderReqData.UnifiedOrderReqDataBuilder("appid", "mch_id",
"body", "out_trade_no", 1,
"spbill_create_ip", "notify_url", "JSAPI")
.setOpenid("openid").build();
Map<String, Object> resultMap = WxPayApi.UnifiedOrder(reqData);
```
return_code 和result_code都為SUCCESS的時(shí)候,可以得到我們需要的prepay_id,然后通過微信中內(nèi)置的jsapi進(jìn)行支付即可;
支付成功之后,微信會(huì)對(duì)指定的notify_url進(jìn)行調(diào)用我們從request中獲得傳回來(lái)的xml之后,可以調(diào)用
```java
String responseXml = new PayNotifyTemplate(requestXml).execute(new PaySuccessCallBack() {
@Override
public void onSuccess(PayNotifyData payNotifyData) {
//進(jìn)行業(yè)務(wù)處理
//如果處理失敗,拋出異常
}
});
```
然后把responseXml 寫到response中。
代碼片段和文件信息
package?com.unstoppedable.common;
/**
?*?User:?rizenguo
?*?Date:?2014/10/29
?*?Time:?14:40
?*?這里放置各種配置數(shù)據(jù)
?*/
public?class?Configure?{
//這個(gè)就是自己要保管好的私有Key了(切記只能放在自己的后臺(tái)代碼里,不能放在任何可能被看到源代碼的客戶端程序中)
//?每次自己Post數(shù)據(jù)給API的時(shí)候都要用這個(gè)key來(lái)對(duì)所有字段進(jìn)行簽名,生成的簽名會(huì)放在Sign這個(gè)字段,API收到Post數(shù)據(jù)的時(shí)候也會(huì)用同樣的簽名算法對(duì)Post過來(lái)的數(shù)據(jù)進(jìn)行簽名和驗(yàn)證
//?收到API的返回的時(shí)候也要用這個(gè)key來(lái)對(duì)返回的數(shù)據(jù)算下簽名,跟API的Sign數(shù)據(jù)進(jìn)行比較,如果值不一致,有可能數(shù)據(jù)被第三方給篡改
private?static?String?key?=?““;
//微信分配的公眾號(hào)ID(開通公眾號(hào)之后可以獲取到)
private?static?String?appID?=?““;
private?static?String?appSecret?=?““;
//微信支付分配的商戶號(hào)ID(開通公眾號(hào)的微信支付功能之后可以獲取到)
private?static?String?mchID?=?““;
//受理模式下給子商戶分配的子商戶號(hào)
private?static?String?subMchID?=?““;
//HTTPS證書的本地路徑
private?static?String?certLocalPath?=?““;
//HTTPS證書密碼,默認(rèn)密碼等于商戶號(hào)MCHID
private?static?String?certPassword?=?““;
//是否使用異步線程的方式來(lái)上報(bào)API測(cè)速,默認(rèn)為異步模式
private?static?boolean?useThreadToDoReport?=?true;
//機(jī)器IP
private?static?String?ip?=?““;
//以下是幾個(gè)API的路徑:
????//0)?統(tǒng)一下單
public?static?String?UNIFIED_ORDER_API?=?“https://api.mch.weixin.qq.com/pay/unifiedorder“;
//1)被掃支付API
public?static?String?PAY_API?=?“https://api.mch.weixin.qq.com/pay/micropay“;
//2)被掃支付查詢API
public?static?String?PAY_QUERY_API?=?“https://api.mch.weixin.qq.com/pay/orderquery“;
//3)退款A(yù)PI
public?static?String?REFUND_API?=?“https://api.mch.weixin.qq.com/secapi/pay/refund“;
//4)退款查詢API
public?static?String?REFUND_QUERY_API?=?“https://api.mch.weixin.qq.com/pay/refundquery“;
//5)撤銷API
public?static?String?REVERSE_API?=?“https://api.mch.weixin.qq.com/secapi/pay/reverse“;
//6)下載對(duì)賬單API
public?static?String?DOWNLOAD_BILL_API?=?“https://api.mch.weixin.qq.com/pay/downloadbill“;
//7)?統(tǒng)計(jì)上報(bào)API
public?static?String?REPORT_API?=?“https://api.mch.weixin.qq.com/payitil/report“;
public?static?boolean?isUseThreadToDoReport()?{
return?useThreadToDoReport;
}
public?static?void?setUseThreadToDoReport(boolean?useThreadToDoReport)?{
Configure.useThreadToDoReport?=?useThreadToDoReport;
}
public?static?String?HttpsRequestClassName?=?“com.tencent.common.HttpsRequest“;
public?static?void?setKey(String?key)?{
Configure.key?=?key;
}
public?static?void?setAppID(String?appID)?{
Configure.appID?=?appID;
}
public??static?void?setAppSecret(String?appSecret)?{
Configure.appSecret?=?appSecret;
}
public?static?void?setMchID(String?mchID)?{
Configure.mchID?=?mchID;
}
public?static?void?setSubMchID(String?subMchID)?{
Configure.subMchID?=?subMchID;
}
public?static?void?setCertLocalPath(String?certLocalPath)?{
Configure.certLocalPath?=?certLocalPath;
}
public?static?void?setCertPassword(String?certPassword)?{
Configure.certPassword?=?certPassword;
}
public?static?void?setIp(String?ip)?{
Configure.ip?=?ip;
}
public?static?String?getKey(){
return?key;
}
public?static?String?getAppid(){
return?appID;
}
public?static?String?getAppSecret()?{
return?appSecret;
}
public?static?String?getMchid(){
return?mchID;
}
public?static?String?getSubMchid(){
return?subMchID;
}
public?static?String?getC
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\
?????文件??????????22??2015-07-29?13:14??wxpay_jsapi-master\.gitignore
?????文件????????1055??2015-07-29?13:14??wxpay_jsapi-master\README.md
?????文件????????1602??2015-07-29?13:14??wxpay_jsapi-master\pom.xm
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\
?????文件????????3952??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\Configure.java
?????文件????????5431??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\HttpService.java
?????文件????????2654??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\JsonUtil.java
?????文件????????1540??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\MD5.java
?????文件?????????704??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\RandomStringGenerator.java
?????文件????????5142??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\Signature.java
?????文件????????2806??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\common\xm
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\notify\
?????文件????????6841??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\notify\PayNotifyData.java
?????文件????????1700??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\notify\PayNotifyTemplate.java
?????文件?????????334??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\notify\PaySuccessCallBack.java
?????文件?????????596??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\notify\ResponseData.java
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\protocol\
?????文件????????8899??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\protocol\UnifiedOrderReqData.java
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\service\
?????文件????????1973??2015-07-29?13:14??wxpay_jsapi-master\src\main\java\com\unstoppedable\service\WxPayApi.java
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\test\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\test\com\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\test\com\unstoppedable\
?????目錄???????????0??2015-07-29?13:14??wxpay_jsapi-master\src\test\com\unstoppedable\notify\
?????文件????????2045??2015-07-29?13:14??wxpay_jsapi-master\src\test\com\unstoppedable\notify\PayNotifyTemplateTest.java
............此處省略0個(gè)文件信息
評(píng)論
共有 條評(píng)論