微信小程序退款遇到的坑及总结

本文分享了在实现微信小程序退款过程中遇到的问题及解决经验,包括签名算法、参数准备、编码格式的重要性以及退款回调的实现。强调了退款不同于支付,需要使用退款证书,并且官方SDK不支持退款功能,需要自行编写代码。提醒开发者注意ASCII排序、验签、编码格式和证书的使用。
摘要由CSDN通过智能技术生成

微信小程序退款遇到的坑及总结

在我做完微信支付并且成功上线运行之后,接到了领导给我的这个微信退款,当时心里那个傲娇(这有啥难的)虽然也是第一次接触,自以为自己写过了支付就退款没啥问题,都一样,结果,杯具了,按照之前写的那一套全部否定, 直接懵逼。。。
在这里说一下,也再次给我自己提个醒,微信的支付是你给微信钱,怎么简单怎么来,一不要证书,二好多东西都可以直接用他们的sdk去做。但是退款不一样,他需要你从微信拿钱,那能好拿吗,需要用到退款的apk证书,而且而且重点强调她这里的官方sdk在退款是不能用的,全部都是需要自己重新写的,谨记!!!

直接上代码吧,看的更明白点

首先跟支付一样需要你的参数配置

public class WxPayConfigurationInfo implements WXPayConfig {
    /**微信号商户号*/
    private String  mchID ;
    /**appID*/
    private  String appID;
    /** API 密钥 */
    private String key;

    /** API证书绝对路径 */
    private String certPath;
    /** 退款异步通知地址 */
    private String refundNotifyUrl;

    @Override
    public InputStream getCertStream() {
        File certFile = new File(certPath);
        InputStream inputStream = null;
        try {
            inputStream = new FileInputStream(certFile);
        } catch (FileNotFoundException e) {

        }
        return inputStream;
    }
}

签名
在这里插入图片描述
严格按照微信官方的签名算法来做签名,首先把你要用来做签名的参数字段做ASCII排序。然后对组装的参数进行加密

//退款签名
    //退款的签名不能用官方的SDK,需要自己去写
    public String sign(String nonceStr,String incrementId,String orderIncrementId,String refund_desc,Integer amount,Integer rechargeAmount,String transationId){
        //首先需要所有的验签参数按ASCII码排序
        SortedMap<String, String> signData = new TreeMap<>();
        //小程序ID
        signData.put("appid", config.getAppID());
        //商户号
        signData.put("mch_id", config.getMchID());
        //随机字符串
        signD
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值