标题:统一支付处理利器:Elixir库Gringotts

标题:统一支付处理利器:Elixir库Gringotts

Gringotts Logo

项目简介

Gringotts是一款基于Elixir的支付处理库,它整合了多种支付网关,灵感来源于Shopify的activemerchantcommerce_billing。这个项目提供了一个实时演示供你体验。

技术分析

Gringotts设计了一个简单而统一的API,可以访问到各种有着不同API、响应模式、文档和术语的支付网关。它不依赖GenServer作为“支付工作者”,而是通过一致化的文档和充分的测试确保其可靠性和易用性。此外,Gringotts还支持更多的支付网关。

应用场景

无论你是构建一个电子商务平台,还是需要在应用中集成多种支付方式,Gringotts都能为你提供便利。你可以轻松地使用Gringotts来处理购买、授权、捕获、退款、撤销等支付操作,无需关心背后复杂的支付网关实现细节。

项目特点

  1. 统一API:无论哪个支付网关,你只需调用相同接口。
  2. 简化流程:无需管理支付工作者进程。
  3. 全面测试:代码覆盖率高,保证稳定运行。
  4. 广泛支持:目前支持包括Authorize.Net、CAMS、MONEI、PAYMILL、Stripe和TREXLE在内的多个支付网关,更多网关正在持续增加中。
  5. 配合优秀的Money库:建议与ex_money一起使用,以精确处理货币计算。

安装与使用

添加gringotts为你的Elixir应用依赖,并配置相应的支付网关参数即可开始使用。例如,以下代码展示了如何使用MONEI网关进行一次购买操作:

# config/config.exs
config :gringotts, Gringotts.Gateways.Monei,
    userId: "your_secret_user_id",
    password: "your_secret_password",
    entityId: "your_secret_channel_id"

# 使用示例
alias Gringotts.Gateways.Monei
alias Gringotts.CreditCard

card = %CreditCard{
  ...
}
amount = Money.new(42, :USD)

case Gringotts.purchase(Monei, amount, card) do
  {:ok,    %{id: id}} -> IO.puts("Payment authorized, reference token: '#{id}'")
  {:error, %{status_code: error, raw: raw_response}} -> IO.puts("Error: #{error}\nRaw:\n#{raw_response}")
end

结论

如果你正在寻找一种易于集成、功能强大的支付解决方案,Gringotts无疑是理想之选。它的强大能力和灵活性使其成为Elixir开发者处理在线支付的必备工具。现在就加入,开启你的无缝支付之旅吧!

GitHub仓库 Hex包

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢忻含Norma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值