登录
首页 >  Golang >  Go问答

错误的 Razorpay 集成:client.Order.Create 参数不完整

来源:stackoverflow

时间:2024-02-16 23:42:27 293浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《错误的 Razorpay 集成:client.Order.Create 参数不完整》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

根据razorpay网站的官方文档尝试实施 代码:

11 func indexpageget(c *gin.context) {
 12
 13         client := razorpay.newclient("rzp_test_zlsyshjhjhjln", "9ltuy4qhghghgh2asp59es")
 14
 15         data := map[string]interface{}{
 16                 "amount":          1234,
 17                 "currency":        "inr",
 18                 "receipt_id":      "some_receipt_id",
 19         }
 20         body, err := client.order.create(data)
 21         if err != nil {
 22                 fmt.println(err)
 23         }
 24
 25         fmt.println(body)

编译错误:

./main.go:20:34: not enough arguments in call to client.order.create
        have (map[string]interface {})
        want (map[string]interface {}, map[string]string)

我的观察:函数 client.order.create(data) 需要两个参数,我从 razorpay 库中确认了它(请参阅函数定义部分)。所以解决方案是我也需要传递第二个参数(extraheaders)。

// Create creates a new order for the given data
func (order *Order) Create(data map[string]interface{}, extraHeaders map[string]string) (map[string]interface{}, error) {
    return order.Request.Post(constants.ORDER_URL, data, extraHeaders)
}

我遇到的问题是 extraheaders 是什么以及我需要传递什么值?


解决方案


根据问题中的评论,做了两件事以使其发挥作用:(请参阅下面代码中的评论)

11 func indexpageGet(c *gin.Context) {
 12
 13         client := razorpay.NewClient("rzp_test_zlsYsrvuUxxhln", "9LtUy4qpLCOtl4Gz2asp59es")
 14
 15         data := map[string]interface{}{
 16                 "amount":          1234,
 17                 "currency":        "INR",
 18                 "receipt":              "110",
 19                 //"receipt_id":      "some_receipt_id", // 1st Mistake in documentation it should be 'receipt', corrected in above line
 20         }
 21         
 22         extraHeader := make(map[string]string) // 2nd Mistake in documentation , corrected by creating an empty map and passed as the second argument in below function.
 23         body, err := client.Order.Create(data,extraHeader)
 24         if err != nil {
 25                 fmt.Println(err)
 26         }
 27
 28         fmt.Println(body)

文档说创建函数需要两个参数,一个作为 map[string]interface{},另一个作为 extraheaders,即 map[string]string。 您可以将 extraheaders 参数设置为 nil,您的代码将正常工作。

今天关于《错误的 Razorpay 集成:client.Order.Create 参数不完整》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>