ExWechatpay.Core (ex_wechatpay v0.3.5)

View Source

微信支付核心模块

该模块是 ExWechatpay 的核心组件,负责初始化配置和委托各种功能到专门的模块。 通过模块职责分离,提高了代码的可维护性和可扩展性。

Summary

Functions

Returns a specification to start this module under a supervisor.

创建 H5 支付交易

创建 JSAPI 支付交易

创建 Native 支付交易

解密微信支付加密数据

获取当前配置

获取微信支付平台证书

生成小程序支付表单

通过商户订单号查询交易

通过微信支付订单号查询交易

启动核心模块并初始化配置

验证微信支付回调或响应签名

Functions

child_spec(arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

close_transaction(name, out_trade_no)

@spec close_transaction(ExWechatpay.Typespecs.name(), String.t()) ::
  :ok | ExWechatpay.Typespecs.err_t()

关闭交易

参数

  • name - Agent 名称
  • out_trade_no - 商户订单号

返回值

  • :ok - 关闭成功
  • {:error, Exception.t()} - 关闭失败的错误信息

create_h5_transaction(name, args)

创建 H5 支付交易

参数

  • name - Agent 名称
  • args - 交易参数

返回值

  • {:ok, map()} - 成功创建的交易信息
  • {:error, Exception.t()} - 创建交易失败的错误信息

create_jsapi_transaction(name, args)

创建 JSAPI 支付交易

参数

  • name - Agent 名称
  • args - 交易参数

返回值

  • {:ok, map()} - 成功创建的交易信息
  • {:error, Exception.t()} - 创建交易失败的错误信息

create_native_transaction(name, args)

@spec create_native_transaction(
  ExWechatpay.Typespecs.name(),
  ExWechatpay.Typespecs.native_transaction_req()
) ::
  ExWechatpay.Typespecs.result_t(
    ExWechatpay.Typespecs.native_transaction_resp()
  )

创建 Native 支付交易

参数

  • name - Agent 名称
  • args - 交易参数

返回值

  • {:ok, map()} - 成功创建的交易信息
  • {:error, Exception.t()} - 创建交易失败的错误信息

create_refund(name, args)

创建退款

参数

  • name - Agent 名称
  • args - 退款参数

返回值

  • {:ok, map()} - 成功创建的退款信息
  • {:error, Exception.t()} - 创建退款失败的错误信息

decrypt(name, encrypted_form)

解密微信支付加密数据

参数

  • name - Agent 名称
  • encrypted_form - 加密数据

返回值

  • {:ok, binary()} - 解密后的数据
  • {:error, Exception.t()} - 解密失败的错误信息

get(name)

获取当前配置

参数

  • name - Agent 名称

返回值

  • Typespecs.config_t() - 当前配置

get_certificates(name, verify \\ true)

获取微信支付平台证书

参数

  • name - Agent 名称
  • verify - 是否验证证书,默认为 true

返回值

  • {:ok, [Typespecs.wx_cert()]} - 成功获取的证书信息
  • {:error, Exception.t()} - 获取证书失败的错误信息

handle_refund_notification(name, headers, body)

处理退款通知

参数

  • name - Agent 名称
  • headers - 通知请求头
  • body - 通知请求体

返回值

  • {:ok, map()} - 解析后的通知数据
  • {:error, Exception.t()} - 处理失败的错误信息

miniapp_payform(name, prepay_id)

@spec miniapp_payform(ExWechatpay.Typespecs.name(), String.t()) :: %{
  required(String.t()) => String.t()
}

生成小程序支付表单

参数

  • name - Agent 名称
  • prepay_id - 预支付 ID

返回值

  • map() - 小程序支付表单

query_refund(name, out_refund_no)

查询退款

参数

  • name - Agent 名称
  • out_refund_no - 商户退款单号

返回值

  • {:ok, map()} - 退款信息
  • {:error, Exception.t()} - 查询失败的错误信息

query_transaction_by_out_trade_no(name, out_trade_no)

通过商户订单号查询交易

参数

  • name - Agent 名称
  • out_trade_no - 商户订单号

返回值

  • {:ok, map()} - 交易信息
  • {:error, Exception.t()} - 查询失败的错误信息

query_transaction_by_transaction_id(name, transaction_id)

通过微信支付订单号查询交易

参数

  • name - Agent 名称
  • transaction_id - 微信支付订单号

返回值

  • {:ok, map()} - 交易信息
  • {:error, Exception.t()} - 查询失败的错误信息

start_link(arg)

启动核心模块并初始化配置

参数

  • {name, finch, config} - 包含名称、Finch 实例和配置的元组

返回值

  • {:ok, pid} - 成功启动的 Agent 进程 ID
  • {:error, reason} - 启动失败的原因

update_config(name, updates)

@spec update_config(
  ExWechatpay.Typespecs.name(),
  keyword()
) :: {:ok, ExWechatpay.Typespecs.config_t()} | {:error, term()}

更新配置

参数

  • name - Agent 名称
  • updates - 配置更新

返回值

  • {:ok, Typespecs.config_t()} - 更新后的配置
  • {:error, reason} - 更新失败的原因

verify(name, headers, body)

验证微信支付回调或响应签名

参数

  • name - Agent 名称
  • headers - HTTP 响应头
  • body - HTTP 响应体

返回值

  • boolean() - 验证结果,true 表示验证通过