PayService.cs 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using Fuel.Payment.Core;
  2. using Fuel.Payment.Core.Enum;
  3. using Fuel.Payment.Core.Models;
  4. using Fuel.Payment.Service.Factory;
  5. using Org.BouncyCastle.Asn1.X509;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Net;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using WayneCloud.Models;
  13. using ElectronicOrderModel = Fuel.Payment.Core.Models.ElectronicOrderModel;
  14. using FuelOrderDetailModel = Fuel.Payment.Core.Models.FuelOrderDetailModel;
  15. namespace Fuel.Payment.Service.Pay
  16. {
  17. public class PayService: IPayService
  18. {
  19. /// <summary>
  20. /// 支付处理
  21. /// </summary>
  22. /// <param name="AuthCode"></param>
  23. /// <returns></returns>
  24. public async Task<ServiceResponse> PerformElectronicProcess(string AuthCode)
  25. {
  26. string billNumber = SequenceNumber.Next();
  27. ElectronicOrderModel eOrder = new ElectronicOrderModel
  28. {
  29. Channel = "ALL_IN_SCAN",
  30. IsRefund = false,
  31. AuthCode = AuthCode,
  32. BillNumber = billNumber,
  33. NetAmount = 0.01M,
  34. Title = "Wayne Payment",
  35. FuelOrderDetails = new List<FuelOrderDetailModel>(),
  36. OperatorId = "001",
  37. SiteId = "66668888",
  38. Config = ""
  39. };
  40. var eProcessor = AsyncPaymentProcessorFactory.Default.Get(eOrder);
  41. //var payConfig = await eProcessor.Initialize(eOrder).ConfigureAwait(false);
  42. //eOrder.Config = payConfig.electronicOrderModel?.Config;
  43. var genericResponseAlipay = await eProcessor.Process(eOrder).ConfigureAwait(false);
  44. //var Result = await eProcessor.PaymentResult(genericResponseAlipay, eOrder).ConfigureAwait(false);
  45. return new ServiceResponse { StatusCode = HttpStatusCode.OK, Data = genericResponseAlipay };
  46. }
  47. private string GetPaymentChannelByPaymentId(PaymentID paymentID)
  48. {
  49. var channel = String.Empty;
  50. switch (paymentID)
  51. {
  52. case PaymentID.AliPay:
  53. channel = "ALI_SCAN";
  54. break;
  55. case PaymentID.AliPayQrScan:
  56. channel = "ALI_ORDER_SCAN";
  57. break;
  58. case PaymentID.WechatPay:
  59. channel = "WX_SCAN";
  60. break;
  61. case PaymentID.WechatQrScan:
  62. channel = "WX_ORDER_SCAN";
  63. break;
  64. case PaymentID.AllInPay:
  65. channel = "ALL_IN_SCAN";
  66. break;
  67. case PaymentID.AllInPayV2:
  68. channel = "ALL_IN_SCAN_V2";
  69. break;
  70. case PaymentID.MembershipMobilePay:
  71. case PaymentID.MiniProgram:
  72. channel = "WECHAT_MINIPROGRAM_PAY";
  73. break;
  74. case PaymentID.IcbcPay:
  75. channel = "ICBC_SCAN";
  76. break;
  77. case PaymentID.IcbcPayQrScan:
  78. channel = "ICBC_ORDER_SCAN";
  79. break;
  80. case PaymentID.MiniUnionPay:
  81. channel = "UNION_MINI";
  82. break;
  83. case PaymentID.UnionPay:
  84. channel = "UNION_SCAN";
  85. break;
  86. case PaymentID.GrgbankingPay:
  87. channel = "GRG_SCAN";
  88. break;
  89. default:
  90. break;
  91. }
  92. return channel;
  93. }
  94. }
  95. }