|
//
// 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(Notification.wxNotification.payDidFinish)
.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()
break
case -2:
Toast.show(message: "取消支付")
break
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)
}
}
|