AlipayHostApiImpl.ets 1.12 KB
import {
  AlipayHostApi, AliPayResultCode, FlutterError, Result as PigeonResult,
} from '../pigeon/AlipayApi';
import { Pay } from '@cashier_alipay/cashiersdk';

const ALIPAY_APP_ID = '2021006185683254';

/**
 * Alipay SDK bridge for HarmonyOS.
 *
 * `prepayData` is an order string produced and signed by the server.  Do not
 * construct or sign it in the app: the order string contains the Alipay App ID
 * (2021006185683254) and must be signed with the merchant private key.
 */
export class AlipayHostApiImpl extends AlipayHostApi {
  launchAliPay(
    prepayData: string,
    callback: PigeonResult<AliPayResultCode>,
  ): void {
    console.log("------", "launchAliPay prepayData: " + prepayData)
    new Pay().pay(prepayData, true).then((result) => {
      switch (result.get('resultStatus')) {
        case '9000':
          callback.success(AliPayResultCode.SUCCESS);
          return;
        case '6001':
          callback.success(AliPayResultCode.CANCEL);
          return;
        default:
          callback.success(AliPayResultCode.ERROR);
          return;
      }
    }).catch(() => callback.success(AliPayResultCode.ERROR));
  }
}