Commit 4c56116419273991c723a741d55b4c0698cd63a3

Authored by “张旭”
1 parent 237700ed

电商支付model , 不全

metaCode.xcodeproj/project.pbxproj
@@ -112,6 +112,7 @@ @@ -112,6 +112,7 @@
112 19AD65AE2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19AD65AD2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift */; }; 112 19AD65AE2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19AD65AD2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift */; };
113 19B153CB2BC3E1870018906C /* CNLiveShopPayController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B153CA2BC3E1870018906C /* CNLiveShopPayController.swift */; }; 113 19B153CB2BC3E1870018906C /* CNLiveShopPayController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B153CA2BC3E1870018906C /* CNLiveShopPayController.swift */; };
114 19B153CD2BC3EB690018906C /* CNLiveShoph5ViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B153CC2BC3EB690018906C /* CNLiveShoph5ViewModel.swift */; }; 114 19B153CD2BC3EB690018906C /* CNLiveShoph5ViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B153CC2BC3EB690018906C /* CNLiveShoph5ViewModel.swift */; };
  115 + 19B153CF2BC540FF0018906C /* CNLivePayOrderInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B153CE2BC540FF0018906C /* CNLivePayOrderInfoModel.swift */; };
115 19BB1FDF2AEA3A450094D962 /* CNSlideBaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */; }; 116 19BB1FDF2AEA3A450094D962 /* CNSlideBaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */; };
116 19BB1FE12AEB5C220094D962 /* CNLiveShopConsoleController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */; }; 117 19BB1FE12AEB5C220094D962 /* CNLiveShopConsoleController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */; };
117 19BB1FE32AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */; }; 118 19BB1FE32AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */; };
@@ -383,6 +384,7 @@ @@ -383,6 +384,7 @@
383 19AD65AD2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopGoodsDetailsTableHeaderView.swift; sourceTree = "<group>"; }; 384 19AD65AD2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopGoodsDetailsTableHeaderView.swift; sourceTree = "<group>"; };
384 19B153CA2BC3E1870018906C /* CNLiveShopPayController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopPayController.swift; sourceTree = "<group>"; }; 385 19B153CA2BC3E1870018906C /* CNLiveShopPayController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopPayController.swift; sourceTree = "<group>"; };
385 19B153CC2BC3EB690018906C /* CNLiveShoph5ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShoph5ViewModel.swift; sourceTree = "<group>"; }; 386 19B153CC2BC3EB690018906C /* CNLiveShoph5ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShoph5ViewModel.swift; sourceTree = "<group>"; };
  387 + 19B153CE2BC540FF0018906C /* CNLivePayOrderInfoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePayOrderInfoModel.swift; sourceTree = "<group>"; };
386 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNSlideBaseNavigationController.swift; sourceTree = "<group>"; }; 388 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNSlideBaseNavigationController.swift; sourceTree = "<group>"; };
387 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleController.swift; sourceTree = "<group>"; }; 389 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleController.swift; sourceTree = "<group>"; };
388 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleViewModel.swift; sourceTree = "<group>"; }; 390 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleViewModel.swift; sourceTree = "<group>"; };
@@ -984,6 +986,7 @@ @@ -984,6 +986,7 @@
984 19BB1FE52AEB93B80094D962 /* CNLiveShopUserInfoModel.swift */, 986 19BB1FE52AEB93B80094D962 /* CNLiveShopUserInfoModel.swift */,
985 19BB1FE72AECAD060094D962 /* CNLiveShopConsoleModel.swift */, 987 19BB1FE72AECAD060094D962 /* CNLiveShopConsoleModel.swift */,
986 19BB1FEF2AF0E5B30094D962 /* CNLiveShopDetailModel.swift */, 988 19BB1FEF2AF0E5B30094D962 /* CNLiveShopDetailModel.swift */,
  989 + 19B153CE2BC540FF0018906C /* CNLivePayOrderInfoModel.swift */,
987 ); 990 );
988 path = Model; 991 path = Model;
989 sourceTree = "<group>"; 992 sourceTree = "<group>";
@@ -1806,6 +1809,7 @@ @@ -1806,6 +1809,7 @@
1806 19123FC12ABC11170075C883 /* CNWebViewController.swift in Sources */, 1809 19123FC12ABC11170075C883 /* CNWebViewController.swift in Sources */,
1807 1926C28F2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift in Sources */, 1810 1926C28F2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift in Sources */,
1808 790D019D2A2DCBD000C5978D /* UIView+CNLiveExtensions.swift in Sources */, 1811 790D019D2A2DCBD000C5978D /* UIView+CNLiveExtensions.swift in Sources */,
  1812 + 19B153CF2BC540FF0018906C /* CNLivePayOrderInfoModel.swift in Sources */,
1809 7C7C62F62A4D72E9007A912E /* CNLiveIdentityDB.swift in Sources */, 1813 7C7C62F62A4D72E9007A912E /* CNLiveIdentityDB.swift in Sources */,
1810 191732E52B05FFE8007BCC04 /* CNLiveModalPresentationViewController.swift in Sources */, 1814 191732E52B05FFE8007BCC04 /* CNLiveModalPresentationViewController.swift in Sources */,
1811 799172342AF08D3200DC01A8 /* CNLiveShopViewModel.swift in Sources */, 1815 799172342AF08D3200DC01A8 /* CNLiveShopViewModel.swift in Sources */,
metaCode/Classes/Main/HomePage/Controller/ShopPayController/CNLiveShopPayController.swift
@@ -7,10 +7,49 @@ @@ -7,10 +7,49 @@
7 7
8 import Foundation 8 import Foundation
9 9
  10 +//支付完成回调
  11 +typealias FinishPayCallBack = (_ testStr:String)->Void//_ orderInfoModel:CNLivePayOrderInfoModel
  12 +
10 class CNLiveShopPayController:CNLiveBaseViewController{ 13 class CNLiveShopPayController:CNLiveBaseViewController{
11 14
  15 + var finishPayCallBack:FinishPayCallBack?
  16 + var orderNumber:String
  17 +
  18 + init(orderNumber:String) {
  19 + self.orderNumber = orderNumber
  20 + super.init(nibName: nil, bundle: nil)
  21 + }
  22 +
  23 + required init?(coder: NSCoder) {
  24 + fatalError("init(coder:) has not been implemented")
  25 + }
  26 +
12 override func viewDidLoad() { 27 override func viewDidLoad() {
13 super.viewDidLoad() 28 super.viewDidLoad()
  29 + navigationBarHidden = false
  30 + titleName = "收银台"
  31 + self.view.backgroundColor = .white
  32 + NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActiveNotification(_:)), name: UIApplication.didBecomeActiveNotification, object: nil)
  33 + self.getOrderInfoMessage()
  34 + }
  35 + // MARK: - 获取订单信息 并且进行检测
  36 + func getOrderInfoMessage(){
  37 + if self.orderNumber.count == 0{
  38 + return
  39 + }
  40 + showLoading(message: "")
  41 + CNLiveShoph5ViewModel.postOrderPayWithParams(orderId: self.orderNumber) { result, status in
  42 + if status == .success{
  43 +
  44 + }
  45 + }
  46 +
  47 + }
  48 +
  49 + @objc func didBecomeActiveNotification(_ notification: Notification) {
  50 + // 处理应用变得活跃的逻辑
14 51
15 } 52 }
  53 +
  54 +
16 } 55 }
metaCode/Classes/Main/HomePage/Controller/WebController/CNWebView.swift
@@ -121,9 +121,15 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{ @@ -121,9 +121,15 @@ class CNWebView:UIView,WKNavigationDelegate, WKScriptMessageHandler{
121 // let payModel = (json["payModel"] as? String) ?? "2" 121 // let payModel = (json["payModel"] as? String) ?? "2"
122 // 现在你可以使用 orderNumber 和 payModel 进行后续操作 122 // 现在你可以使用 orderNumber 和 payModel 进行后续操作
123 print("orderNumber: \(orderNumber)") 123 print("orderNumber: \(orderNumber)")
  124 + let vc = CNLiveShopPayController(orderNumber: orderNumber)
  125 + vc.finishPayCallBack = { [weak self] testStr in
  126 + print(testStr)
  127 + self?.cnWebView.evaluateJavaScript(String(format: "appPaymentCallback('%@')", <#T##arguments: CVarArg...##CVarArg#>), completionHandler: { result, error in
  128 +
  129 + })
  130 + }
124 // 跳转支付页面 131 // 跳转支付页面
125 -  
126 -// navigationViewController().pushViewController(<#T##viewController: UIViewController##UIViewController#>, animated: pushAnimated) 132 + navigationViewController().pushViewController(vc, animated: pushAnimated)
127 } 133 }
128 }else if message.name == "pop" { 134 }else if message.name == "pop" {
129 //返回上一级控制器 135 //返回上一级控制器
metaCode/Classes/Main/HomePage/View/VerticalViews/UpSlide/CNUpSlideView.swift
@@ -30,7 +30,7 @@ class CNUpSlideView:UIView{ @@ -30,7 +30,7 @@ class CNUpSlideView:UIView{
30 30
31 var url:URL? 31 var url:URL?
32 if (_downPath != ""){ 32 if (_downPath != ""){
33 - url = URL.init(string: _downPath!)//"https://managemall.cnlive.com/html/mall/1/#/pages/main/goodsList/goodsList?scene=app")// 33 + url = URL.init(string: "https://managemall.cnlive.com/html/mall/1/#/pages/main/goodsList/goodsList?scene=app")//_downPath!)//
34 }else{ 34 }else{
35 url = nil 35 url = nil
36 } 36 }
metaCode/Classes/Main/HomePage/ViewModel/CNLiveShoph5ViewModel.swift
@@ -40,7 +40,32 @@ class CNLiveShoph5ViewModel:NSObject{ @@ -40,7 +40,32 @@ class CNLiveShoph5ViewModel:NSObject{
40 } 40 }
41 } 41 }
42 42
43 -  
44 - 43 + /*
  44 + 支付订单信息
  45 + 参数 orderId 订单号
  46 + */
  47 + static func postOrderPayWithParams(orderId:String,resultBlock: @escaping downSlideResultBlock) {
  48 + let param = NSMutableDictionary()
  49 + param.setValue(orderId, forKey: "orderId")
  50 +
  51 + CNLiveNetworking.setAllowRequestDefaultArgument(true)
  52 + CNLiveNetworking.setupShowDataResult(false)
  53 + CNLiveNetworking.setupDSRequest(true)
  54 + let custom_param = NSMutableDictionary()
  55 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId_wjj, forKey: "appId")
  56 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey_wjj, forKey: "appKey")
  57 + CNLiveNetworking.setupCustomParam(custom_param as? [String : String])
  58 + CNLiveNetworking.requestNetwork(with: .POST, urlString: APPBaseWjjShopUrl+"/Api/Index3/orderPay", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in
  59 + hiddenLoading()
  60 + if (error == nil) {
  61 + let resp = result as! NSDictionary
  62 + let dataDic = resp["data"] as! NSDictionary
  63 + let orderModel = newDictionaryToModel(dataDic as! [String : Any], CNLivePayOrderInfoModel.self)
  64 + resultBlock(orderModel,.success)
  65 + }else{
  66 + resultBlock(NSNull(),.failed)
  67 + }
  68 + }
  69 + }
45 70
46 } 71 }
metaCode/Classes/Main/Model/CNLivePayOrderInfoModel.swift 0 → 100644
  1 +//
  2 +// CNLivePayOrderInfoModel.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2024/4/9.
  6 +// 电商h5支付订单model
  7 +
  8 +import Foundation
  9 +
  10 +class CNLivePayOrderInfoModel:BaseModel{
  11 + ///订单id
  12 + var id: String = ""
  13 + ///订单号
  14 + var orderId: String = ""
  15 + ///订单信息
  16 + var body: String = ""
  17 + ///总价(分)
  18 + var totalMoney: String = ""
  19 + ///回调地址
  20 + var notify_url: String = ""
  21 + ///优惠金额(分)
  22 + var couponMoney: String = ""
  23 + ///用户id
  24 + var user_id: String = ""
  25 + ///收款人id
  26 + var toId: String = ""
  27 + ///收款人类型(1个人 2群组 3达人)
  28 + var toType: String = ""
  29 + ///支付人类型(1个人 2群组 3达人)
  30 + var fromType: String = ""
  31 + ///支付类型 foods_order餐厅订单 mall_order商城订单
  32 + var sourceType: String = ""
  33 + ///是否为公会限购订单(1:是 0:不是)
  34 + var is_limit: String = ""
  35 + ///integral > 0 为积分订单
  36 + var integral: String = ""
  37 +}