精华内容
下载资源
问答
  • 微信退款

    2021-05-24 10:30:38
    微信退款介绍退款mavenyml配置两个config类实现方法 介绍 搞微信退款的时候发现一个好用的SDK,不止微信支付相关,包含很多。 码云地址 文档 微信支付demo 退款 maven <dependency> <groupId>...

    介绍

    搞微信退款的时候发现一个好用的SDK,不止微信支付相关,包含很多。
    码云地址
    文档
    微信支付demo

    退款

    maven

    <dependency>
        <groupId>com.github.binarywang</groupId>
        <artifactId>weixin-java-pay</artifactId>
        <version>4.0.0</version>
    </dependency>
    

    yml配置

    wx:
      pay:
        appId: #微信公众号或者小程序等的appid
        mchId: #微信支付商户号
        mchKey: #微信支付商户密钥
        subAppId: #服务商模式下的子商户公众账号ID
        subMchId: #服务商模式下的子商户号
        keyPath: # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
    

    两个config类

    package com.github.binarywang.demo.wx.pay.config;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    /**
     * wxpay pay properties.
     *
     * @author Binary Wang
     */
    @Data
    @ConfigurationProperties(prefix = "wx.pay")
    public class WxPayProperties {
      /**
       * 设置微信公众号或者小程序等的appid
       */
      private String appId;
    
      /**
       * 微信支付商户号
       */
      private String mchId;
    
      /**
       * 微信支付商户密钥
       */
      private String mchKey;
    
      /**
       * 服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除
       */
      private String subAppId;
    
      /**
       * 服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除
       */
      private String subMchId;
    
      /**
       * apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定
       */
      private String keyPath;
    
    }
    
    
    package com.github.binarywang.demo.wx.pay.config;
    
    import com.github.binarywang.wxpay.config.WxPayConfig;
    import com.github.binarywang.wxpay.service.WxPayService;
    import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
    import lombok.AllArgsConstructor;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * @author Binary Wang
     */
    @Configuration
    @ConditionalOnClass(WxPayService.class)
    @EnableConfigurationProperties(WxPayProperties.class)
    @AllArgsConstructor
    public class WxPayConfiguration {
      private WxPayProperties properties;
    
      @Bean
      @ConditionalOnMissingBean
      public WxPayService wxService() {
        WxPayConfig payConfig = new WxPayConfig();
        payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId()));
        payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId()));
        payConfig.setMchKey(StringUtils.trimToNull(this.properties.getMchKey()));
        payConfig.setSubAppId(StringUtils.trimToNull(this.properties.getSubAppId()));
        payConfig.setSubMchId(StringUtils.trimToNull(this.properties.getSubMchId()));
        payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath()));
    
        // 可以指定是否使用沙箱环境
        payConfig.setUseSandboxEnv(false);
    
        WxPayService wxPayService = new WxPayServiceImpl();
        wxPayService.setConfig(payConfig);
        return wxPayService;
      }
    
    }
    
    

    实现方法

    /**
         * 微信退款
         *
         * @param outTradeNo  支付流水号
         * @param outRefundNo 退款流水号
         * @param totalFee    支付金额
         * @param refundFee   退款金额
         */
        public static Map<String, Object> doRefund(String outTradeNo, String outRefundNo, int totalFee, int refundFee) {
            Map<String, Object> map = new HashMap<>();
            try {
                WxPayRefundRequest request = new WxPayRefundRequest();
                request.setOutTradeNo(outTradeNo);
                request.setOutRefundNo(outRefundNo);
                request.setTotalFee(totalFee);
                request.setRefundFee(refundFee);
                WxPayRefundResult refundRequest = wxService.refund(request);
                if (refundRequest.getReturnCode().equals("SUCCESS")) {
                    map.put("code", 200);
                    map.put("msg", "调用成功!");
                    return map;
                } else {
                    map.put("code", 500);
                    map.put("msg", "调用失败!");
                    return map;
                }
            } catch (WxPayException e) {
                e.printStackTrace();
                map.put("code", 500);
                map.put("msg", "调用失败!");
                return map;
            }
        }
    
    展开全文
  • Hi商学院消息,微信退款多久到账?微信退款不成功怎么办?各位微信用户,如果你在微信上进行了金钱的交易,如果交易失败了是会微信退款给您的哦,但是微信退款需要一点时间才会到您的账户,那么微信退款多久到账呢?一...

    Hi商学院消息,微信退款多久到账?微信退款不成功怎么办?各位微信用户,如果你在微信上进行了金钱的交易,如果交易失败了是会微信退款给您的哦,但是微信退款需要一点时间才会到您的账户,那么微信退款多久到账呢?

    一、微信退款多久到账?

    若充值记录核实该笔交易为失败状态,微信一般会在第二个工作日进行对账,若确实扣了款,则会原路退回,若是使用零钱进行付款,资金将实时退回到零钱包;

    若是使用银行卡进行转账付款,资金将在2-5个工作日退回到付款银行卡。

    查询零钱是否到账可以在下面的界面查询,查询银行卡是否到账可以到银行柜台,ATM机,网银等渠道查询。

    a47973733bd882cec7b7df5b8b6049cf.png

    二、微信退款不成功怎么办?

    1)退款状态为“交易资金不足”:

    由于选择了交易未结算资金进行退款,资金不足无法完成退款。此时,需等待新的订单生成,交易资金在结算之前足够退款金额系统自动执行退款,或充值之后选择余额退款。

    2)退款状态为“可用余额不足”:

    由于选择了可用余额退款,余额不足无法完成退款。此时,需在现金管理内进行充值,充值成功到账后再次手动操作点击可用余额退款。

    3)退款状态为“退款异常”:

    当用户使用银行卡支付时,微信支付首先原路退款到银行卡,当银行卡状态不正常或银行卡错误时,微信支付会优先转退用户微信零钱,仅当用户微信零钱也注销,才会转入“退款异常”状态。此时可选择“其它方式退款”,手动录入用户的银行信息完成退款。

    4)退款状态为“待审核”:

    说明商户配置了退款审核流程,联系审核人登录商户平台审核通过。审核人登录商户平台,点击【交易中心】->【交易管理】->【交易退款】->【退款审核】,通过审核即可。

    有审核流的退款单,自发起退款申请后14天内未审核,系统将自动驳回,如有需要,商户可再次发起退款申请;

    三、订单退款状态如何查询?

    登录商户平台,点击【交易中心】->【交易管理】->【退款查询 】,查询条件:交易订单号 时间+状态类型查询。

    微信退款多久到账?不同情况的微信退款到账时间是不同的哦,hishop在以上的内容中都进行了说明,您看完以上的内容就会知道了哦,微信退款是不会马上到账的,需要耐心等待。请多多的关注Hi商学院哦

    展开全文
  • 最近做了关于微信退款的后台SDK集成开发,这里做下记录。1.微信提供了C#版本的SDK,可以直接拿过来用,而不用自己去对照着微信api开发文档去自己写SDK。2.这里需要注意下,微信开放平台的账号是一个总的账号,它可以...

    最近做了关于微信退款的后台SDK集成开发,这里做下记录。

    1.微信提供了C#版本的SDK,可以直接拿过来用,而不用自己去对照着微信api开发文档去自己写SDK。

    2.这里需要注意下,微信开放平台的账号是一个总的账号,它可以绑定微信公众号、微信APP支付等多个应用

    7de2f8216bdb92269e96312ba559bba5.png

    f76ba059c03e0784ce6f85ca2504ca00.png

    这里的每个应用都会有一个自己对应的商户号,而在对应的商户后台,每个商户的证书也是需要单独下载的。意思就是说,即使是同一个开放平台的账号,绑定的应用不同,那么对应的商户号也不一样,而且每个微信应用(移动APP应用或者公众号)的

    AppID和AppSecret都是不同的,这里需要注意。

    需要从微信商户后台下载证书,证书下载完成之后,证书的路径应当放在网站根目录,对于Windows系统可以直接双击进行导入,在请求微信退款接口时需要设置证书路径和密码等。

    下图是微信应用的商户平台后台的下载证书界面:

    fb5f6964faadc4531a0882737911c28b.png

    3.这些步骤完成后,就可以直接用微信提供的SDK的demo进行调试了,我们可以在本地进行安装证书,只要在请求接口时将证书路径和密码设置正确就可以。

    4.IIS需要设置,服务器的IIS的网站对应的应用程序次的高级设置:

    619871999c5ec08238e34bc664666560.png

    加载用户配置文件设置为true,不然证书调用不成功。

    好了就记录到这。

    展开全文
  • 主要为大家详细介绍了java实现微信点餐申请微信退款,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 微信退款

    2018-09-17 15:39:59
    php微信退款类,$payment是数组,里面是退款信息使用前要在72行配置支付KEY,在143行和148行修改证书位置就行了
  • 微信native支付, 微信JSAPI支付, 微信退款, 微信提现, 微信付款查询, 所有方法都已经封装实现, main方法可直接调用体验, maven项目
  • 最新微信退款通知解密 微信退款 AES256 PK7 ECB加密解密
  • Java微信退款开发

    2020-08-26 23:12:06
    主要为大家详细介绍了Java微信退款开发的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,439
精华内容 5,375
关键字:

微信退款