package shop.alien.store.strategy.platformMembershipPayment;

import shop.alien.entity.result.R;
import shop.alien.entity.store.PlatformShopMembershipPaymentOrder;

import java.util.Map;

/**
 * 平台店铺会员卡支付（参照预订订单 MerchantPaymentStrategy，独立实现）
 */
public interface PlatformMembershipPaymentStrategy {

    R<Map<String, Object>> createPrePay(Integer storeId, Integer membershipOrderId, String amountYuan, String subject, Integer userId);

    R<Object> queryPayStatus(Integer storeId, String outTradeNo);

    String getType();

    /**
     * 测试/联调用：对指定会员卡支付流水调用第三方退款；成功后将支付单与会员卡业务订单标为已退款（不自动回滚 platform_shop_membership 权益周期）。
     */
    R<String> refundForTest(PlatformShopMembershipPaymentOrder paymentOrder, String refundAmountYuan, String refundReason);
}
