server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/services/src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/services/src/main/resources/application-test.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/web/src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
small-program/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
small-program/pages/index/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
small-program/pages/login/login.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java
@@ -83,9 +83,17 @@ .body(body) .build(); NotificationConfig config = new RSAAutoCertificateConfig.Builder() NotificationConfig config = /*new RSAAutoCertificateConfig.Builder() .merchantId(WxMiniConfig.wxProperties.getMchId()) .privateKeyFromPath(WxMiniConfig.wxProperties.getPrivateKeyPath()) .merchantSerialNumber(WxMiniConfig.wxProperties.getSerialNumer()) .apiV3Key(WxMiniConfig.wxProperties.getApiV3Key()) .build(); */ new RSAPublicKeyConfig.Builder() .merchantId(WxMiniConfig.wxProperties.getMchId()) .privateKeyFromPath(WxMiniConfig.wxProperties.getPrivateKeyPath()) .publicKeyFromPath(WxMiniConfig.wxProperties.getPubKeyPath()) .publicKeyId(WxMiniConfig.wxProperties.getPayPublicKeyId()) .merchantSerialNumber(WxMiniConfig.wxProperties.getSerialNumer()) .apiV3Key(WxMiniConfig.wxProperties.getApiV3Key()) .build(); @@ -152,13 +160,20 @@ .body(body) .build(); NotificationConfig config = new RSAAutoCertificateConfig.Builder() NotificationConfig config = /*new RSAAutoCertificateConfig.Builder() .merchantId(WxMiniConfig.wxProperties.getMchId()) .privateKeyFromPath(WxMiniConfig.wxProperties.getPrivateKeyPath()) .merchantSerialNumber(WxMiniConfig.wxProperties.getSerialNumer()) .apiV3Key(WxMiniConfig.wxProperties.getApiV3Key()) .build();*/ new RSAPublicKeyConfig.Builder() .merchantId(WxMiniConfig.wxProperties.getMchId()) .privateKeyFromPath(WxMiniConfig.wxProperties.getPrivateKeyPath()) .publicKeyFromPath(WxMiniConfig.wxProperties.getPubKeyPath()) .publicKeyId(WxMiniConfig.wxProperties.getPayPublicKeyId()) .merchantSerialNumber(WxMiniConfig.wxProperties.getSerialNumer()) .apiV3Key(WxMiniConfig.wxProperties.getApiV3Key()) .build(); NotificationParser parser = new NotificationParser(config); RefundNotification result = parser.parse(requestParam, RefundNotification.class); @@ -194,7 +209,7 @@ .publicKeyFromPath(WxMiniConfig.wxProperties.getWechatPubKeyPath()) //微信支付公钥的存放路径 .publicKeyId(WxMiniConfig.wxProperties.getWechatPayPublicKeyId()) //微信支付公钥ID .merchantSerialNumber(WxMiniConfig.wxProperties.getWechatSerialNumer()) //商户API证书序列号 .apiV3Key("7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB") //APIv3密钥 .apiV3Key(WxMiniConfig.wxProperties.getWechatApiV3Key()) //APIv3密钥 .build(); TransferDetailEntityNew entity = wxSuccessCallback(request,config); server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java
@@ -12,6 +12,9 @@ import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.RSAPublicKeyConfig; import com.wechat.pay.java.core.http.HostName; import com.wechat.pay.java.core.notification.RSAPublicKeyNotificationConfig; import com.wechat.pay.java.service.billdownload.BillDownloadService; import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiService; import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension; @@ -78,27 +81,28 @@ */ public void load_wxPayService() { try { // Config config = // new RSAPublicKeyConfig.Builder() // .merchantId(wxPayProperties.getMchId()) // .privateKeyFromPath(wxPayProperties.getPrivateKeyPath()) // .publicKeyFromPath(wxPayProperties.getPubKeyPath()) // .publicKeyId("PUB_KEY_ID_0117000719222024112700219100000508") // .merchantSerialNumber(wxPayProperties.getSerialNumer()) // .apiV3Key(wxPayProperties.getApiV3Key()) // .build(); Config config = new RSAAutoCertificateConfig.Builder() new RSAPublicKeyConfig.Builder() .merchantId(wxPayProperties.getMchId()) .privateKeyFromPath(wxPayProperties.getPrivateKeyPath()) // .publicKeyFromPath(wxPayProperties.getPubKeyPath()) // .publicKeyId("PUB_KEY_ID_0117000719222024112700219100000508") .publicKeyFromPath(wxPayProperties.getPubKeyPath()) .publicKeyId(wxPayProperties.getPayPublicKeyId()) .merchantSerialNumber(wxPayProperties.getSerialNumer()) .apiV3Key(wxPayProperties.getApiV3Key()) .build(); // Config config = // new RSAAutoCertificateConfig.Builder() // .merchantId(wxPayProperties.getMchId()) // .privateKeyFromPath(wxPayProperties.getPrivateKeyPath()) //// .publicKeyFromPath(wxPayProperties.getPubKeyPath()) //// .publicKeyId("PUB_KEY_ID_0117000719222024112700219100000508") // .merchantSerialNumber(wxPayProperties.getSerialNumer()) // .apiV3Key(wxPayProperties.getApiV3Key()) // .build(); // this.wxPayService = new JsapiService.Builder().config(config).build(); this.jsapiExtService = new JsapiServiceExtension.Builder().config(config).build(); this.refundService = new RefundService.Builder().config(config).build(); this.billDownloadService = new BillDownloadService.Builder().config(config).build(); server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java
@@ -53,13 +53,13 @@ withdrawalOrders.setCreateTime(new Date()); withdrawalOrdersMapper.insert(withdrawalOrders); CreateRequest request = new CreateRequest(); request.setOutTradeNo(orders.getCode()); request.setOutTradeNo(orders.getOutTradeNo()); request.setOutRefundNo(withdrawalOrders.getId().toString()); request.setSubMchid(WxMiniConfig.wxProperties.getSubMchId()); request.setNotifyUrl(WxMiniConfig.wxProperties.getRefundNotifyUrl()); AmountReq amountReq = new AmountReq(); amountReq.setTotal(withdrawalOrders.getAmount()); amountReq.setRefund(withdrawalOrders.getAmount()); amountReq.setTotal(1L);//withdrawalOrders.getAmount()); amountReq.setRefund(1L);//withdrawalOrders.getAmount()); amountReq.setCurrency("CNY"); request.setAmount(amountReq); try { server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java
@@ -63,6 +63,7 @@ private String privateKeyPath ; private String privateCertPath;// gybike private String pubKeyPath;// private String payPublicKeyId;// private String wechatSerialNumer; @@ -70,7 +71,7 @@ private String wechatPubKeyPath; //微信支付公钥文件路径 private String wechatPrivateKeyPath; private String wechatNotifyUrl; // private String wechatApiV3Key; private String wechatApiV3Key; // private String wechatPlatformPubKeyPath; server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -178,6 +178,7 @@ request.setSpAppid(WxMiniConfig.wxProperties.getAppId()); request.setSubMchid(WxMiniConfig.wxProperties.getSubMchId()); request.setSubAppid(WxMiniConfig.wxProperties.getSubAppId()); Payer payer = new Payer(); payer.setSubOpenid(openid); request.setPayer(payer); @@ -895,6 +896,7 @@ //退款业务 WithdrawalOrders withdrawalOrders = new WithdrawalOrders(); withdrawalOrders.setCreateTime(new Date()); withdrawalOrders.setDeleted(Constants.ZERO); withdrawalOrders.setMemberId(orders.getReleaseMemberId()); withdrawalOrders.setAmount(orders.getPayAccount()); withdrawalOrders.setStatus(Constants.ZERO); server/services/src/main/resources/application-dev.yml
@@ -88,6 +88,7 @@ appId: wx6cc1087ca79db7f6 #服务商在微信开放平台(移动应用)或公众平台(公众号/小程序)上申请的一个唯一标识 apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142 #7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB serialNumer: 6696086F6EFB8D6A4F821BD47DDBAF75C3BC1209 #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #服务商证书序列号 payPublicKeyId: PUB_KEY_ID_0117000719222024112700219100000508 #商户/平台支付公钥id #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S notifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxPayNotify refundNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxRefundNotify @@ -104,7 +105,7 @@ wechatPubKeyPath: d://jinkuai/shanghu/pub_key.pem #商户支付公钥 wechatPrivateKeyPath: d://jinkuai/shanghu/apiclient_key.pem #商户私钥 wechatNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wechat/transferNotify #商户转账回调地址 wechatApiV3Key: 7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB existsSub: 1 appSecret: server/services/src/main/resources/application-test.yml
@@ -76,15 +76,17 @@ pay: #服务商---------start------- 参数详解地址 https://pay.weixin.qq.com/doc/v3/partner/4013080340 mchId: 1700071922 #服务商在微信支付侧的唯一身份标识 appId: wx332441ae5b12be7d #服务商在微信开放平台(移动应用)或公众平台(公众号/小程序)上申请的一个唯一标识 appId: wx6cc1087ca79db7f6 #服务商在微信开放平台(移动应用)或公众平台(公众号/小程序)上申请的一个唯一标识 apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142 #7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB serialNumer: 7DCD480EB6DF3791721867A6EB57105DECEF38BE #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #服务商证书序列号 serialNumer: 6696086F6EFB8D6A4F821BD47DDBAF75C3BC1209 #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #服务商证书序列号 payPublicKeyId: PUB_KEY_ID_0117000719222024112700219100000508 #商户/平台支付公钥id #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S notifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxPayNotify refundNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxRefundNotify keyPath: /usr/local/jars/payFile/apiclient_cert.p12 privateCertPath: /usr/local/jars/payFile/apiclient_cert.pem privateKeyPath: /usr/local/jars/payFile/apiclient_key.pem pubKeyPath: /usr/local/jars/payFile/pub_key.pem #商户支付公钥 #服务商-------------end--- @@ -94,6 +96,7 @@ wechatPubKeyPath: /usr/local/jars/payFile/shanghu/pub_key.pem #商户支付公钥 wechatPrivateKeyPath: /usr/local/jars/payFile/shanghu/apiclient_key.pem #商户私钥 wechatNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wechat/transferNotify #商户转账回调地址 wechatApiV3Key: 7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB existsSub: 1 server/web/src/main/resources/application.yml
@@ -12,7 +12,7 @@ spring: profiles: active: dev active: test # JSON返回配置 jackson: # 默认时区 small-program/main.js
@@ -16,6 +16,7 @@ Vue.prototype.$baseUrl = 'http://192.168.1.54:10011/' // Vue.prototype.$baseUrl = 'https://test.doumee.cn/jinkuai_web/' const app = new Vue({ store, ...App small-program/pages/index/index.vue
@@ -447,6 +447,16 @@ this.form.estimatedAccount = '' this.form.price = '' this.form.address = '' this.orderFood = [] }) // 刷新首页数据 uni.$on('refresh', () => { this.getCategoryLists() this.getDictInfo() if (this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}') { this.form.linkPhone = this.userInfo.telephone } }) }, onShow(options) { @@ -520,7 +530,9 @@ } }, onReachBottom() { this.getOrderList() if (this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}' && this.userInfo.useIdentity === 1) { this.getOrderList() } }, methods: { getDictInfo(){ @@ -1254,12 +1266,16 @@ padding: 30rpx 0; box-sizing: border-box; flex-direction: column; border-bottom: 1rpx solid #E5E5E5; // border-bottom: 1rpx solid #E5E5E5; .radio-item { width: 100%; display: flex; align-items: self-end; margin-bottom: 30rpx; border-bottom: 1rpx solid #E5E5E5; &:last-child { border: none; } &:last-child { margin: 0 !important; } @@ -1312,6 +1328,7 @@ align-items: center; justify-content: flex-end; margin-top: 42rpx; margin-bottom: 34rpx; text { font-weight: 400; font-size: 30rpx; small-program/pages/login/login.vue
@@ -53,6 +53,7 @@ if (result.code === 200) { that.$store.commit('setUserInfo', result.data.member) that.$store.commit('setToken', result.data.token) uni.$emit('refresh') uni.navigateBack({ delta: 1 }); } })