ExWechatpay.Config.Provider (ex_wechatpay v0.3.5)

View Source

配置提供者模块

该模块负责加载和管理 ExWechatpay 的配置,支持从多种来源获取配置:

  1. 直接传入的配置
  2. 应用程序配置
  3. 环境变量

通过这种方式,可以灵活地管理配置,同时支持配置热更新。

Summary

Functions

获取当前配置

加载配置

从环境变量加载配置

准备配置,进行必要的转换

更新现有配置

Functions

get_current_config(agent)

@spec get_current_config(atom()) :: keyword()

获取当前配置

参数

  • agent - 配置 Agent 名称

返回值

  • keyword() - 当前配置

load(config)

@spec load(keyword()) :: {:ok, keyword()} | {:error, term()}

加载配置

参数

  • config - 直接传入的配置

返回值

  • {:ok, config} - 成功加载的配置
  • {:error, error} - 加载失败的错误信息

配置加载优先级:直接传入的配置 > 应用程序配置 > 环境变量 > 默认值

load_env_config()

@spec load_env_config() :: keyword()

从环境变量加载配置

环境变量需要以 EX_WECHATPAY_ 为前缀,例如:

  • EX_WECHATPAY_APPID
  • EX_WECHATPAY_MCHID
  • EX_WECHATPAY_SERVICE_HOST

对于复杂结构,可以使用 JSON 格式的字符串,例如:

  • EX_WECHATPAY_WX_PUBS='[{"wechatpay-serial": "pem-content"}]'

返回值

  • keyword() - 从环境变量加载的配置

prepare_config(config)

@spec prepare_config(keyword()) :: keyword()

准备配置,进行必要的转换

参数

  • config - 原始配置

返回值

  • keyword() - 处理后的配置

set_config(agent, config)

@spec set_config(
  atom(),
  keyword()
) :: :ok

设置配置

参数

  • agent - 配置 Agent 名称
  • config - 新配置

返回值

  • :ok - 设置成功

update_config(agent, updates)

@spec update_config(
  atom(),
  keyword()
) :: {:ok, keyword()} | {:error, term()}

更新现有配置

参数

  • agent - 配置 Agent 名称
  • updates - 要更新的配置

返回值

  • {:ok, new_config} - 更新后的配置
  • {:error, error} - 更新失败的错误信息