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
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec close_transaction(ExWechatpay.Typespecs.name(), String.t()) :: :ok | ExWechatpay.Typespecs.err_t()
关闭交易
参数
name- Agent 名称out_trade_no- 商户订单号
返回值
:ok- 关闭成功{:error, Exception.t()}- 关闭失败的错误信息
@spec create_h5_transaction( ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.h5_transaction_req() ) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.h5_transaction_resp())
创建 H5 支付交易
参数
name- Agent 名称args- 交易参数
返回值
{:ok, map()}- 成功创建的交易信息{:error, Exception.t()}- 创建交易失败的错误信息
@spec create_jsapi_transaction( ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.jsapi_transaction_req() ) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.jsapi_transaction_resp())
创建 JSAPI 支付交易
参数
name- Agent 名称args- 交易参数
返回值
{:ok, map()}- 成功创建的交易信息{:error, Exception.t()}- 创建交易失败的错误信息
@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()}- 创建交易失败的错误信息
@spec create_refund(ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.refund_req()) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.refund_resp())
创建退款
参数
name- Agent 名称args- 退款参数
返回值
{:ok, map()}- 成功创建的退款信息{:error, Exception.t()}- 创建退款失败的错误信息
@spec decrypt( ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.encrypted_resource() ) :: ExWechatpay.Typespecs.result_t(binary())
解密微信支付加密数据
参数
name- Agent 名称encrypted_form- 加密数据
返回值
{:ok, binary()}- 解密后的数据{:error, Exception.t()}- 解密失败的错误信息
@spec get(ExWechatpay.Typespecs.name()) :: ExWechatpay.Typespecs.config_t()
获取当前配置
参数
name- Agent 名称
返回值
Typespecs.config_t()- 当前配置
@spec get_certificates(ExWechatpay.Typespecs.name(), boolean()) :: ExWechatpay.Typespecs.result_t([ExWechatpay.Typespecs.wx_cert()])
获取微信支付平台证书
参数
name- Agent 名称verify- 是否验证证书,默认为 true
返回值
{:ok, [Typespecs.wx_cert()]}- 成功获取的证书信息{:error, Exception.t()}- 获取证书失败的错误信息
@spec handle_refund_notification( ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.headers(), ExWechatpay.Typespecs.body() ) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.payment_notification())
处理退款通知
参数
name- Agent 名称headers- 通知请求头body- 通知请求体
返回值
{:ok, map()}- 解析后的通知数据{:error, Exception.t()}- 处理失败的错误信息
@spec miniapp_payform(ExWechatpay.Typespecs.name(), String.t()) :: %{ required(String.t()) => String.t() }
生成小程序支付表单
参数
name- Agent 名称prepay_id- 预支付 ID
返回值
map()- 小程序支付表单
@spec query_refund(ExWechatpay.Typespecs.name(), String.t()) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.refund_query_resp())
查询退款
参数
name- Agent 名称out_refund_no- 商户退款单号
返回值
{:ok, map()}- 退款信息{:error, Exception.t()}- 查询失败的错误信息
@spec query_transaction_by_out_trade_no(ExWechatpay.Typespecs.name(), String.t()) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.transaction_query_resp())
通过商户订单号查询交易
参数
name- Agent 名称out_trade_no- 商户订单号
返回值
{:ok, map()}- 交易信息{:error, Exception.t()}- 查询失败的错误信息
@spec query_transaction_by_transaction_id(ExWechatpay.Typespecs.name(), String.t()) :: ExWechatpay.Typespecs.result_t(ExWechatpay.Typespecs.transaction_query_resp())
通过微信支付订单号查询交易
参数
name- Agent 名称transaction_id- 微信支付订单号
返回值
{:ok, map()}- 交易信息{:error, Exception.t()}- 查询失败的错误信息
@spec start_link( {ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.name(), keyword()} ) :: ExWechatpay.Typespecs.on_start()
启动核心模块并初始化配置
参数
{name, finch, config}- 包含名称、Finch 实例和配置的元组
返回值
{:ok, pid}- 成功启动的 Agent 进程 ID{:error, reason}- 启动失败的原因
@spec update_config( ExWechatpay.Typespecs.name(), keyword() ) :: {:ok, ExWechatpay.Typespecs.config_t()} | {:error, term()}
更新配置
参数
name- Agent 名称updates- 配置更新
返回值
{:ok, Typespecs.config_t()}- 更新后的配置{:error, reason}- 更新失败的原因
@spec verify( ExWechatpay.Typespecs.name(), ExWechatpay.Typespecs.headers(), ExWechatpay.Typespecs.body() ) :: boolean()
验证微信支付回调或响应签名
参数
name- Agent 名称headers- HTTP 响应头body- HTTP 响应体
返回值
boolean()- 验证结果,true表示验证通过