import md5 from 'md5';

// const MOCK_DATA = {
//   pg: {
//     userInfo: {
//       h5Param: {
//         msdkParam: '',
//         serverIndex: '4',
//       },
//       openId: 'BA77314D0CAB574501606B86C2145FEF',
//       userId: '591',
//       hpydUserId: '0',
//     },
//   },
// };


// function main() {
//   const res = getMPMsdkParams(MOCK_DATA);
//   const result = Object.keys(res).map(item => `${item}=${res[item]}`)
//     .join('&');

//   console.log('result', result);
// }

// main();

export function getMPMsdkParams({
  data = wx as any,

  encode = '2',
  algorithm = 'v2',
  source = 'heping_yingdi',

  MSDKVersion = '3.1.96i',
  version = '3.1.96i',
  mpHpydAuth = '1',

  appId = '',
}: {
  data: {
    pg: {
      userInfo: Record<string, any>;
    }
  };
  encode?: string;
  algorithm?: string;
  source?: string;

  MSDKVersion?: string;
  version?: string;
  mpHpydAuth?: string;

  appId?: string;
}) {
  const {
    h5Param,
    openId,
    userId,
    hpydUserId,
    // @ts-ignore
  } = data?.pg?.userInfo || {};

  const { msdkParam, serverIndex }  = h5Param || {};
  const MSDK_KEY = 'b9cea81b3508db324921c4c7fc22e333';


  let curAppId =  'wxb7659468ecf2f4ce';
  // #ifdef MP-QQ
  curAppId = '1105412664';
  // #endif

  if (appId) {
    curAppId = appId;
  }

  const timestamp = parseInt(`${Date.now() / 1000}`, 10);

  return {
    msdkEncodeParam: msdkParam,
    serverIndex,
    encode,
    algorithm,
    source,
    MSDKVersion,
    version,
    timestamp,
    sig: md5(`${MSDK_KEY}${timestamp}`),
    appid: curAppId,


    openid: openId,
    mpUserId: userId,
    mpHpydAuth,
    hpydUserId,
  };
}

