//
//  KWMPayUtil.m
//  iCemarose
//
//  Created by HouWeiBin on 2017/6/15.
//  Copyright © 2017年 kollway. All rights reserved.
//

#import "KWMPayUtil.h"
#import "KWMStringUtil.h"

@implementation KWMPayUtil

+(NSString *)payTypeString:(KWMPayType)payType{
    NSString *payTypeString = @"";
    switch (payType) {
        case TypeNone:
            payTypeString = @"请选择一种付款方式";
            break;
        case TypeCredit:
            payTypeString = @"信用卡支付";
            break;
        case TypeWechatPay:
            payTypeString = @"微信支付";
            break;
        case TypeAlipay:
            payTypeString = @"支付宝支付";
            break;
        case TypeWebpay:
            payTypeString = @"网页支付";
    }
    return payTypeString;
}

+(NSDictionary *)wechatPayParameters:(BUYCheckout *)checkout{
    //这是测试商店的单,先用来测试
#if DEBUG
    NSString *checkout_token = checkout.token;
    NSString *total_price = [NSString stringWithFormat:@"%.2f",checkout.totalPrice.floatValue];
    //先写test,后面改成正式的订单描述
#else
    NSString *checkout_token = checkout.token;
    //需要保留小数点后两位(包括小数点后的.00),以保持与后台一致,从而验证通过
    NSString *total_price = [NSString stringWithFormat:@"%.2f",checkout.totalPrice.floatValue];
#endif
    NSString *ip_address = @"127.0.0.1";
    NSString *before_sign = [NSString stringWithFormat:@"checkout_token=%@&ip_address=%@&total_price=%@&key=%@",
                             checkout_token,ip_address,total_price,User_Pay_KEY];
    NSString *base64String = [KWMStringUtil BASE64:before_sign];
    NSString *sign = [KWMStringUtil MD5:base64String];
    
    NSDictionary *parameters = @{
                                 @"ip_address":ip_address,
                                 @"checkout_token":checkout_token,
                                 @"total_price":total_price,
                                 @"sign":sign
                                 };
    return parameters;
}

+(NSDictionary *)aliPayParameters:(BUYCheckout *)checkout{
    //这是测试商店的单,先用来测试
#if DEBUG
    NSString *checkout_token = checkout.token;
    NSString *total_price = [NSString stringWithFormat:@"%.2f",checkout.totalPrice.floatValue];
#else
    NSString *checkout_token = checkout.token;
    //需要保留小数点后两位(包括小数点后的.00),以保持与后台一致,从而验证通过
    NSString *total_price = [NSString stringWithFormat:@"%.2f",checkout.totalPrice.floatValue];
#endif
    NSString *before_sign = [NSString stringWithFormat:@"checkout_token=%@&total_price=%@&key=%@",
                             checkout_token,total_price,User_Pay_KEY];
    NSString *base64String = [KWMStringUtil BASE64:before_sign];
    NSString *sign = [KWMStringUtil MD5:base64String];
    
    NSDictionary *parameters = @{
                                 @"checkout_token":checkout_token,
                                 @"total_price":total_price,
                                 @"sign":sign
                                 };
    return parameters;
}

//现在在两个地方会用到这条api
//1,支付后切换回到APP
//2,beforepay创建/复用旧checkout时,判断该checkout是否被支付了,但是之前没清空。
+(NSDictionary *)payResultParameters:(BUYCheckout *)checkout{
#if DEBUG
    NSString *checkout_token = checkout.token;
#else
    NSString *checkout_token = checkout.token;
#endif
    NSString *before_sign = [NSString stringWithFormat:@"checkout_token=%@&key=%@",
                             checkout_token,User_Pay_KEY];
    NSString *base64String = [KWMStringUtil BASE64:before_sign];
    NSString *sign = [KWMStringUtil MD5:base64String];
    
    NSDictionary *parameters = @{
                                 @"checkout_token":checkout_token,
                                 @"sign":sign
                                 };
    return parameters;
}

+(void)weChatPay:(KWMWechatPayData *)wechatData{
    if(wechatData){
        PayReq *request = [[PayReq alloc] init];
        request.openID = wechatData.appid;
        request.partnerId = wechatData.partnerid;
        request.prepayId= wechatData.prepayid;
        request.package = wechatData.package;
        request.nonceStr= wechatData.noncestr;
        request.timeStamp= (UInt32)wechatData.timestamp;
        request.sign= wechatData.sign;
        [WXApi sendReq:request];
    }
}

+(void)aliPay:(NSString *)alipayData callback:(CompletionBlock)callback{
    if(![KWMStringUtil isEmpty:alipayData]){
        NSString *appScheme = @"iCemarose";
        [[AlipaySDK defaultService] payOrder:alipayData fromScheme:appScheme callback:callback];
    }
}

@end