package com.fs.pay.service;

import java.util.Map;

/**
 * 第三方支付/退款异步回调签名校验（对齐 his_java 验签逻辑）
 */
public interface IPayNotifyVerifyService
{
    /**
     * 易宝支付回调验签（MD5，密钥来自 store.pay 配置 ybKey）
     */
    boolean verifyYibaoCallback(Map<String, String> params);

    /**
     * 易宝支付回调验签（按 appId 匹配密钥，无多小程序配置时回退默认 ybKey）
     */
    boolean verifyYibaoCallback(Map<String, String> params, String appId);

    /**
     * 汇付天下异步回调验签（RSA，遍历已配置公钥对 resp_data 验签）
     */
    boolean verifyHuifuCallback(String respData, String sign);

    /**
     * 汇付天下异步回调验签（指定 appId 时使用对应公钥，否则遍历全部公钥）
     */
    boolean verifyHuifuCallback(String respData, String sign, String appId);

    /**
     * 小雨点/账户支付异步回调验签（MD5，密钥来自 fs-config.payKey）
     */
    boolean verifyHcPayCallback(String rawJsonBody);

    /**
     * 台州银行支付/退款回调验签（解密成功即视为合法，对齐 his_java CallBackUtil.decrypt）
     */
    String decryptTzBankCallback(String decryptForm);
}
