ExWechatpay. VirtualPay. Callback
(ex_wechatpay v0.4.0)
View Source
虚拟支付回调解析工具
提供微信虚拟支付的回调通知解析函数:
- parse_deliver: 解析发货通知
- parse_refund: 解析退款通知
- success_response: 返回成功响应 JSON
回调无签名验证,仅做 JSON 解析 + 字段名容错(大小写)。
Summary
Functions
@spec parse_deliver(String.t() | map()) :: {:ok, map()} | {:error, ExWechatpay.Exception.t()}
解析发货回调通知
微信发货通知字段名大小写可能不一致,此函数做容错处理。
参数
body_or_params- 请求体字符串或已解析的 map
返回值
{:ok, map()}- 解析成功,包含 openid, out_trade_no, product_id{:error, Exception.t()}- 解析失败
示例
iex> parse_deliver(~s({"OpenId":"xxx","OutTradeNo":"VP123","GoodsInfo":{"ProductId":"vip_six_week"}}))
{:ok, %{openid: "xxx", out_trade_no: "VP123", product_id: "vip_six_week"}}
@spec parse_refund(String.t() | map()) :: {:ok, map()} | {:error, ExWechatpay.Exception.t()}
解析退款回调通知
参数
body_or_params- 请求体字符串或已解析的 map
返回值
{:ok, map()}- 解析成功,包含 openid, wx_refund_id, refund_fee, ret_code{:error, Exception.t()}- 解析失败
@spec success_response() :: map()
返回成功响应 JSON
微信回调要求返回固定格式的成功响应。
返回值
map()- %{"ErrCode" => 0, "ErrMsg" => "success"}