SwiftMoyaServicePayApi.swift 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // SwiftMoyaServicePayApi.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/4/3.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. // MARK: - 支付宝支付接口
  11. /// 支付宝支付接口
  12. public let kAlipayApi = "/pay/alipay"
  13. /// 支付宝支付接口
  14. public let kWeixinpayApi = "/pay/wxpay"
  15. /// 支付
  16. ///
  17. /// - alipay: 支付宝支付
  18. public enum SwiftMoyaServicePayApi {
  19. case alipay(parameters:Dictionary<String, Any>)
  20. case weixinpay(parameters:Dictionary<String, Any>)
  21. }
  22. extension SwiftMoyaServicePayApi: TargetType {
  23. public var baseURL: URL {
  24. switch self {
  25. case .alipay,
  26. .weixinpay
  27. :
  28. return URL(string: kApiDataPrefix())!
  29. }
  30. }
  31. public var path: String {
  32. switch self {
  33. case .alipay:
  34. return kAlipayApi
  35. case .weixinpay:
  36. return kWeixinpayApi
  37. }
  38. }
  39. public var method: Moya.Method {
  40. switch self {
  41. case .alipay,
  42. .weixinpay
  43. :
  44. return .post
  45. }
  46. }
  47. // MARK: - 请求任务事件(这里附带上参数)
  48. public var task: Task {
  49. switch self {
  50. case .alipay(var parameters),
  51. .weixinpay(var parameters)
  52. :
  53. let sign = SwiftSign.shared().sign(signType:.AccessToken, parameters: parameters)
  54. parameters.updateValue(sign, forKey: "sign")
  55. return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
  56. }
  57. }
  58. // MARK: - 是否执行Alamofire验证
  59. public var validate: Bool {
  60. return false
  61. }
  62. // MARK: - 这个就是做单元测试模拟的数据,只会在单元测试文件中有作用
  63. public var sampleData: Data {
  64. return "{}".data(using: String.Encoding.utf8)!
  65. }
  66. // MARK: - 请求头
  67. public var headers: [String : String]? {
  68. //同task,具体选择看后台 有application/x-www-form-urlencoded 、application/json
  69. switch self {
  70. case .alipay,
  71. .weixinpay
  72. :
  73. return (headerParameters(headerType: .defaultHeader) as! [String : String])
  74. }
  75. }
  76. }