PaySharpConfigExtensions.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #if NET45
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Configuration;
  6. using PaySharp.Wechatpay;
  7. namespace PaySharp.Core.Mvc
  8. {
  9. public static class PaySharpConfigExtensions
  10. {
  11. public static IGateways RegisterWechatpay(this IGateways gateways, Action<Merchant> action)
  12. {
  13. if (action != null)
  14. {
  15. var merchant = new Merchant();
  16. action(merchant);
  17. gateways.Add(new WechatpayGateway(merchant));
  18. }
  19. return gateways;
  20. }
  21. public static IGateways RegisterWechatpay(this IGateways gateways)
  22. {
  23. var merchants = (List<Hashtable>)ConfigurationManager.GetSection("paySharp/wechatpays");
  24. if (merchants == null)
  25. {
  26. return gateways;
  27. }
  28. foreach (var item in merchants)
  29. {
  30. var wechatpayGateway = new WechatpayGateway(new Merchant
  31. {
  32. AppId = item["appId"].ToString(),
  33. MchId = item["mchId"].ToString(),
  34. NotifyUrl = item["notifyUrl"].ToString(),
  35. Key = item["key"].ToString(),
  36. AppSecret = item["appSecret"].ToString(),
  37. SslCertPath = item["sslCertPath"].ToString(),
  38. SslCertPassword = item["sslCertPassword"].ToString(),
  39. PublicKey = item["publicKey"].ToString()
  40. });
  41. var gatewayUrl = item["gatewayUrl"].ToString();
  42. if (!string.IsNullOrEmpty(gatewayUrl))
  43. {
  44. wechatpayGateway.GatewayUrl = gatewayUrl;
  45. }
  46. gateways.Add(wechatpayGateway);
  47. }
  48. return gateways;
  49. }
  50. }
  51. }
  52. #endif