暫無描述

PhotoPurchaseViewModel.swift 1.8KB

    // // PhotoPurchaseViewModel.swift // PaiaiDataKit // // Created by FFIB on 2019/3/19. // Copyright © 2019 FFIB. All rights reserved. // import Foundation import RxSwift import RxCocoa //wechat pay public class PhotoPurchaseViewModel { private var purchaseAPI: PhotoPurchaseRemoteAPI private var disposeBag = DisposeBag() private var orderId: String = "" public var notifyPhotoChanged = PublishSubject<PhotoItem>() public init(item: PhotoItem) { self.purchaseAPI = PhotoPurchaseRemoteAPI(item: item) payDidFinish() } public func switchItem(item: PhotoItem) { self.purchaseAPI = PhotoPurchaseRemoteAPI(item: item) } public func purchase() { purchaseAPI.purchase().subscribe(onSuccess: {[weak self] orderId in guard let `self` = self else { return } self.orderId = orderId }).disposed(by: disposeBag) } private func payDidFinish() { NotificationCenter.default.rx.notification(.wxPayDidFinish) .subscribe(onNext: { (notification) in guard let userInfo = notification.userInfo as? [String: Int], let code = userInfo["code"] else { Toast.show(message: "支付失败") return } switch code { case 0: self.getOrderDetail() case -2: Toast.show(message: "取消支付") default: Toast.show(message: "发生未知错误") } }).disposed(by: disposeBag) } private func getOrderDetail() { purchaseAPI.getOrderDetail(orderId: orderId).subscribe(onSuccess: { item in self.notifyPhotoChanged.onNext(item) }).disposed(by: disposeBag) } }