最近给 wechat sdk 增加了支付相关的支持,我们来看看怎么使用
初始化
首先,添加依赖:
1 | defp deps do |
然后定义 Client:
1 | defmodule WechatPayDemo.PayClient do |
上面这些参数都可以从微信支付商户后台中获取到,证书和私钥文件可以通过微信支付官方工具下载。
然后将 v2 & v3 的 API秘钥 添加到配置文件runtime.exs
:
1 | config :wechat, WechatPayDemo.PayClient, |
注意:部分 v2 的接口请求时需要用到证书,如:撤销订单,因此如果有使用到这部分接口,必须添加下面的配置
1 |
|
最后别忘将 WechatPayDemo.PayClient
启动起来:
1 | def start(_type, _args) do |
使用接口
启动之后,就可以开始调用 微信支付的接口了
1 | @doc "小程序/jsapi 下单" |
设置回调功能
有部分接口会用到 微信支付回调 功能,因此 还需要几步 进行设置
新建建 路由模块 WechatPayDemoWeb.PayRouter
:
1 | defmodule WechatPayDemoWeb.PayRouter do |
新建 事件处理器 WechatPayDemo.PayEvent
:
1 | defmodule WechatPayDemo.PayEvent do |
我们用到了 Cachex
库进行排重处理,所以 还需要 先启动它:
1 | def start(_type, _args) do |
最后,我们将 路由模块 放入 Endpoint :
1 | plug WechatPayDemoWeb.PayRouter |
注意:
WechatPayDemoWeb.PayRouter 的位置比较关键
位于 plug Plug.Parsers
的上一行
PayRouter 内部需要未解析的 body,所以必须在解析器解析body之前
大功告成
至此,微信支付功能 集成就完成了,希望你使用愉快
如遇到问题,可以 在 Repo 下留言或提交 PR