Go调用Mollie API创建支付遇赋值不匹配等错误求助
解决Mollie Go SDK初始化错误方案
核心问题分析
你遇到的错误都是因为对mollie.NewClient的参数格式、返回值签名理解有误,加上参数顺序传反导致的。
修正步骤及示例代码
1. 正确初始化客户端
mollie.NewClient的正确要求:
- 参数顺序:第一个是
*http.Client(传nil即可使用默认客户端),第二个是*mollie.Config(必须包含你的测试API密钥) - 返回值:返回客户端实例和错误,用两个变量接收即可
2. 完整可运行示例
package main import ( "log" "github.com/mollie/mollie-api-go/v3/mollie" ) func main() { // 构建配置结构体,填入测试密钥 config := &mollie.Config{ APIKey: "test_你的测试API密钥", } // 初始化Mollie客户端 mollieClient, err := mollie.NewClient(nil, config) if err != nil { log.Fatalf("初始化Mollie客户端失败: %v", err) } // 创建测试支付请求 payment, _, err := mollieClient.Payments.Create(&mollie.PaymentRequest{ Amount: &mollie.Amount{ Value: "10.00", Currency: "EUR", }, Description: "测试支付订单", RedirectURL: "https://你的回调地址.com", }) if err != nil { log.Fatalf("创建支付失败: %v", err) } log.Printf("支付创建成功,ID: %s,跳转链接: %s", payment.ID, payment.Links.Checkout.Href) }
常见错误排查
- 参数类型不匹配:不要直接传API Key字符串给
NewClient,必须用mollie.Config结构体包装;同时注意参数顺序,http.Client在前,Config在后 - 返回值不匹配:
mollie.NewClient仅返回两个值(客户端+错误),如果提示需要三个值,检查是否误调用了其他函数(比如Payments.Create返回三个值) - 版本问题:确保使用最新版Mollie Go SDK(v3),旧版本的函数签名可能不同
内容的提问来源于stack exchange,提问作者Othman Boūlal
相关产品推荐
相关产品推荐

