2121import com .alibaba .fastjson .JSON ;
2222import com .alibaba .fastjson .JSONObject ;
2323import com .egzosn .pay .common .api .BasePayService ;
24+ import com .egzosn .pay .common .bean .AssistOrder ;
2425import com .egzosn .pay .common .bean .BillType ;
25- import com . egzosn . pay . common . bean . CloseOrder ;
26+
2627import com .egzosn .pay .common .bean .CurType ;
2728import com .egzosn .pay .common .bean .MethodType ;
2829import com .egzosn .pay .common .bean .NoticeParams ;
3233import com .egzosn .pay .common .bean .PayOrder ;
3334import com .egzosn .pay .common .bean .PayOutMessage ;
3435import com .egzosn .pay .common .bean .RefundOrder ;
36+ import com .egzosn .pay .common .bean .RefundResult ;
3537import com .egzosn .pay .common .bean .TransactionType ;
3638import com .egzosn .pay .common .bean .TransferOrder ;
3739import com .egzosn .pay .common .bean .result .PayException ;
6668 *
6769 * @author egan
6870 * <pre>
69- * email egzosn@gmail .com
70- * date 2016-5-18 14:09:01
71+ * email egan@egzosn .com
72+ * date 2021/10/6
7173 * </pre>
7274 */
7375public class WxPayService extends BasePayService <WxPayConfigStorage > {
@@ -111,6 +113,7 @@ public WxPayService(WxPayConfigStorage payConfigStorage, HttpConfigStorage confi
111113
112114 /**
113115 * 辅助api
116+ *
114117 * @return 辅助api
115118 */
116119 public WxPayAssistService getAssistService () {
@@ -126,7 +129,18 @@ public void setAssistService(WxPayAssistService assistService) {
126129 this .assistService = assistService ;
127130 }
128131
132+ /**
133+ * 初始化之后执行
134+ */
135+ @ Override
136+ protected void initAfter () {
137+ new Thread (() -> {
138+ payConfigStorage .loadCertEnvironment ();
139+ wxParameterStructure = new WxParameterStructure (payConfigStorage );
140+ getAssistService ();
141+ }).start ();
129142
143+ }
130144
131145 /**
132146 * 设置api服务器地址
@@ -223,8 +237,8 @@ public JSONObject unifiedOrder(PayOrder order) {
223237 Map <String , Object > parameters = wxParameterStructure .getPublicParameters ();
224238 wxParameterStructure .initPartner (parameters );
225239 // 商品描述
226- OrderParaStructure .loadParameters (parameters , "description" , order .getSubject ());
227- OrderParaStructure .loadParameters (parameters , "description" , order .getBody ());
240+ OrderParaStructure .loadParameters (parameters , WxConst . DESCRIPTION , order .getSubject ());
241+ OrderParaStructure .loadParameters (parameters , WxConst . DESCRIPTION , order .getBody ());
228242 // 订单号
229243 parameters .put (WxConst .OUT_TRADE_NO , order .getOutTradeNo ());
230244 //交易结束时间
@@ -430,15 +444,29 @@ public Map<String, Object> microPay(PayOrder order) {
430444 */
431445 @ Override
432446 public Map <String , Object > query (String transactionId , String outTradeNo ) {
447+ return query (new AssistOrder (transactionId , outTradeNo ));
448+ }
433449
450+ /**
451+ * 交易查询接口
452+ *
453+ * @param assistOrder 查询条件
454+ * @return 返回查询回来的结果集,支付方原值返回
455+ */
456+ @ Override
457+ public Map <String , Object > query (AssistOrder assistOrder ) {
458+ String transactionId = assistOrder .getTradeNo ();
459+ String outTradeNo = assistOrder .getOutTradeNo ();
434460 String parameters = wxParameterStructure .getSpParameters ();
435461 WxTransactionType transactionType = WxTransactionType .QUERY_TRANSACTION_ID ;
436462 String uriVariable = transactionId ;
437463 if (StringUtils .isNotEmpty (outTradeNo )) {
438464 transactionType = WxTransactionType .QUERY_OUT_TRADE_NO ;
439465 uriVariable = outTradeNo ;
440466 }
467+
441468 return getAssistService ().doExecute (parameters , transactionType , uriVariable );
469+
442470 }
443471
444472
@@ -451,30 +479,30 @@ public Map<String, Object> query(String transactionId, String outTradeNo) {
451479 */
452480 @ Override
453481 public Map <String , Object > close (String transactionId , String outTradeNo ) {
454- return close (new CloseOrder (outTradeNo ));
482+ return close (new AssistOrder (outTradeNo ));
455483 }
456484
457-
458485 /**
459486 * 交易关闭接口
460487 *
461- * @param closeOrder 关闭订单
488+ * @param assistOrder 关闭订单
462489 * @return 返回支付方交易关闭后的结果
463490 */
464491 @ Override
465- public Map <String , Object > close (CloseOrder closeOrder ) {
492+ public Map <String , Object > close (AssistOrder assistOrder ) {
466493 String parameters = wxParameterStructure .getSpParameters ();
467- return getAssistService ().doExecute (parameters , WxTransactionType .CLOSE , closeOrder .getOutTradeNo ());
494+ return getAssistService ().doExecute (parameters , WxTransactionType .CLOSE , assistOrder .getOutTradeNo ());
468495 }
469496
497+
470498 /**
471499 * 申请退款接口
472500 *
473501 * @param refundOrder 退款订单信息
474502 * @return 返回支付方申请退款后的结果
475503 */
476504 @ Override
477- public WxRefundResult refund (RefundOrder refundOrder ) {
505+ public RefundResult refund (RefundOrder refundOrder ) {
478506 //获取公共参数
479507 Map <String , Object > parameters = wxParameterStructure .initSubMchId (null );
480508
@@ -538,7 +566,7 @@ public Map<String, Object> downloadBill(Date billDate, BillType billType) {
538566 Map <String , Object > parameters = new HashMap <>(5 );
539567
540568 //目前只支持日账单
541- parameters .put ("bill_date" , DateUtils .formatDate (billDate , DateUtils .YYYYMMDD ));
569+ parameters .put (WxConst . BILL_DATE , DateUtils .formatDate (billDate , DateUtils .YYYY_MM_DD ));
542570 String fileType = billType .getFileType ();
543571 OrderParaStructure .loadParameters (parameters , "tar_type" , fileType );
544572 if (billType instanceof WxAccountType ) {
@@ -567,7 +595,7 @@ public Map<String, Object> downloadBill(Date billDate, BillType billType) {
567595 }
568596 Map <String , Object > data = new HashMap <>();
569597 data .put ("file" , inputStream );
570- return result ;
598+ return data ;
571599 }
572600
573601
@@ -579,7 +607,7 @@ public Map<String, Object> downloadBill(Date billDate, BillType billType) {
579607 */
580608 @ Override
581609 public Map <String , Object > transfer (TransferOrder order ) {
582- throw new PayErrorException (new WxPayError ("" , "等待作者实现 " ));
610+ throw new PayErrorException (new WxPayError ("" , "V3不支持转账 " ));
583611 }
584612
585613
@@ -596,7 +624,7 @@ public Map<String, Object> transfer(TransferOrder order) {
596624 */
597625 @ Override
598626 public Map <String , Object > transferQuery (String outNo , String wxTransferType ) {
599- throw new PayErrorException (new WxPayError ("" , "等待作者实现 " ));
627+ throw new PayErrorException (new WxPayError ("" , "V3不支持转账查询 " ));
600628 }
601629
602630
0 commit comments