PaySharpConfigExtensions.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #if NET45
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Configuration;
  6. using PaySharp.Alipay;
  7. namespace PaySharp.Core.Mvc
  8. {
  9. public static class PaySharpConfigExtensions
  10. {
  11. public static IGateways RegisterAlipay(this IGateways gateways, Action<Merchant> action)
  12. {
  13. if (action != null)
  14. {
  15. var merchant = new Merchant();
  16. action(merchant);
  17. gateways.Add(new AlipayGateway(merchant));
  18. }
  19. return gateways;
  20. }
  21. public static IGateways RegisterAlipay(this IGateways gateways)
  22. {
  23. var merchants = (List<Hashtable>)ConfigurationManager.GetSection("paySharp/alipays");
  24. if (merchants == null)
  25. {
  26. return gateways;
  27. }
  28. foreach (var item in merchants)
  29. {
  30. var alipayGateway = new AlipayGateway(new Merchant
  31. {
  32. AppId = item["appId"].ToString(),
  33. AlipayPublicKey = item["alipayPublicKey"].ToString(),
  34. NotifyUrl = item["notifyUrl"].ToString(),
  35. Privatekey = item["privatekey"].ToString(),
  36. ReturnUrl = item["returnUrl"].ToString()
  37. });
  38. var gatewayUrl = item["gatewayUrl"].ToString();
  39. if (!string.IsNullOrEmpty(gatewayUrl))
  40. {
  41. alipayGateway.GatewayUrl = gatewayUrl;
  42. }
  43. gateways.Add(alipayGateway);
  44. }
  45. return gateways;
  46. }
  47. }
  48. }
  49. #endif