拉卡拉支付 Go SDK

最近有一个需求,需要用到拉卡拉的支付,然后秉着开源精神去网上找到了
github.com/go-pay/gopay 一个支付的库,等到我使用的时候却发现拉卡拉的实现是
url
国外的接口,😂😂😂。
无奈之下,只能自己动手来实现一个拉卡拉的Golang SDK。也就是github.com/ywanbing/pay 的诞生。

项目地址:https://github.com/ywanbing/pay

下面就是这个项目的介绍

功能介绍

  1. 拉卡拉支付的接口SDK,目前只会增加聚合平台的支付接口
  2. 采用泛型的方式进行接口封装

快速开始

该库采用泛型和一些新的特性,需要使用的 Go 版本需要不小于 1.22.4

安装

1、使用 Go Modules 管理你的项目

如果你的项目还不是使用 Go Modules 做依赖管理,在项目根目录下执行:

go mod init
2、无需 clone 仓库中的代码,直接在项目目录中执行:
go get -u github.com/ywanbing/pay

来添加依赖,完成 go.mod 修改与 SDK 下载。

发送支付订单创建

先初始化一个 lklpay.Client 实例,再向拉卡拉支付发送请求。

package main

import (
	"context"
	"time"

	"github.com/ywanbing/pay/lklpay"
	"github.com/ywanbing/pay/lklpay/common"
	"github.com/ywanbing/pay/lklpay/model"
)

var (
	Appid           = "OP00000003"
	SerialNo        = "00dfba8194c41b84cf"
	MerchantNo      = "822290059430BCY"
	TermNo          = "A9254710"
	SyncPublicKey   = `-----BEGIN CERTIFICATE----- ******* END CERTIFICATE-----`
	SyncPubicPath   = "" // 读取证书文件(如果没有配置 SyncPublicKey 那么就会读取文件)
	SignPrivateKey  = `-----BEGIN RSA PRIVATE KEY----- ******* END RSA PRIVATE KEY-----`
	SignPrivatePath = "" // 读取私钥文件(如果没有配置 SignPrivateKey 那么就会读取文件)
)

func main() {
	client := lklpay.New(lklpay.Config{
		Appid:           Appid,
		SerialNo:        SerialNo,
		MerchantNo:      MerchantNo,
		TermNo:          TermNo,
		SyncPublicKey:   SyncPublicKey,
		SignPrivateKey:  SignPrivateKey,
		SyncPubicPath:   "",
		SignPrivatePath: "",
	},
		lklpay.WithIsProd(true),     // 是否生产环境
		lklpay.WithNonceStrLen(12),  // 随机字符串长度
		lklpay.WithVerifyResp(true)) // 验证响应的签名
	// ... 还有一些其他的配置

	// resp *model.SpecialCreateRes
	resp, err := client.OrderSpecialCreate(context.Background(), model.SpecialCreateReq{
		OutOrderNo:           "123456789",
		MerchantNo:           MerchantNo,
		TotalAmount:          1,
		OrderEfficientTime:   common.FormatTime(time.Now().Add(time.Minute * 5)), // 提供时间的格式化
		OrderInfo:            "测试订单",
		SupportRefund:        1,
		CloseOrderAutoRefund: "1",
	})
	if err != nil {
		panic(err)
	}
	println(resp)
}


实现接口

  • 收银台订单创建 client.OrderSpecialCreate doc地址
  • 收银台订单查询 client.OrderQuery doc地址
  • 收银台订单通知 client.ParseOrderNotify doc地址
  • 收银台订单关单 client.OrderClose doc地址
  • 扫码-退款交易 client.Refund doc地址

相关推荐

  1. aardio - godking.json 【库】测试

    2024-07-11 19:32:04       40 阅读
  2. 【模拟】卡拉兹猜想

    2024-07-11 19:32:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 19:32:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 19:32:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 19:32:04       58 阅读
  4. Python语言-面向对象

    2024-07-11 19:32:04       69 阅读

热门阅读

  1. 【C++】include头文件中双引号和尖括号的区别

    2024-07-11 19:32:04       17 阅读
  2. 在 MyBatis-Plus 中,字段更新为 null 的方法

    2024-07-11 19:32:04       17 阅读
  3. html基础-持续更新

    2024-07-11 19:32:04       24 阅读
  4. FastAPI -- 第一弹

    2024-07-11 19:32:04       21 阅读
  5. vue2 实现原生 WebSocket

    2024-07-11 19:32:04       20 阅读
  6. 第五十章 Web Service URL 汇总

    2024-07-11 19:32:04       22 阅读
  7. MyEclipse不能自动编译解决方案

    2024-07-11 19:32:04       22 阅读
  8. Node.js path模块

    2024-07-11 19:32:04       19 阅读
  9. Node.js Stream

    2024-07-11 19:32:04       22 阅读
  10. 前端时间格式传入后端负载里面没有东西

    2024-07-11 19:32:04       23 阅读