统一网关 behaviour:三家网关实现同一组动作,能力差异经 capabilities/0 + supports/2 显式声明。
-type err() :: {error, {atom(), binary()}}.
-callback build_pay_sign(Cfg :: map(), Args :: map()) -> {ok, map()} | err().
-callback cancel(Cfg :: map(), Req :: map()) -> {ok, map()} | err().
-callback capabilities() -> [atom()].
-callback close(Cfg :: map(), Req :: map()) -> {ok, map()} | err().
-callback create_payment(Cfg :: map(), Order :: map()) -> {ok, map()} | err().
-callback download_bill(Cfg :: map(), Req :: map()) -> {ok, map()} | err().
-callback query(Cfg :: map(), Query :: map()) -> {ok, map()} | err().
-callback refund(Cfg :: map(), RefundReq :: map()) -> {ok, map()} | err().
-callback verify_notify(Cfg :: map(), Ctx :: map()) -> {ok, map()} | err().