doum
2025-08-22 391c0cfc4ba595ef26c7a2315c555d8c75afec7d
Merge remote-tracking branch 'origin/master'
已修改11个文件
101 ■■■■ 文件已修改
server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/resources/application-dev.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/resources/application-test.yml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/main.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/index/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/login/login.vue 1 ●●●● 补丁 | 查看 | 原始文档 | 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 });
                    }
                })