为了账号安全,请及时绑定邮箱和手机立即绑定

转到贝宝 REST API 请求

转到贝宝 REST API 请求

Go
米脂 2021-11-15 20:29:45
所以我目前正在使用 Go 并且我正在尝试为 Paypal 创建付款我一直在尝试此代码    payer := &Payer{"paypal"}    amount := &Amount{"EUR", "12"}    trans := &Transactions{amount, "A super test"}    uris := &Redirect_urls{"http://localhost", "http://localhost"}    p := &Payment{"sale", payer, trans, uris}    response, err := json.Marshal(p)    if err != nil {        log.Println("Error at PaypalPayment - buy controller")        log.Fatal(err)    }    log.Println(string(response))    client := &http.Client{}    buf := bytes.NewBuffer(response)    req, err := http.NewRequest("POST", "https://api.sandbox.paypal.com/v1/payments/payment", buf)    if err != nil {        log.Println("Error at PaypalPayment - buy controller - 2")        log.Fatal(err)    }    req.Header.Set("Content-Type", "application/json")    req.Header.Set("Authorization", "Bearer " + token.Access_token)    resp, err := client.Do(req)    if err != nil {        log.Println("Error at PaypalPayment - buy controller - 3")        log.Fatal(err)    }    body, err := ioutil.ReadAll(resp.Body)    if err != nil {        log.Println("Error at PaypalPayment - buy controller - 4")        log.Fatal(err)    }    log.Println(string(body))我已经获得了访问令牌,问题是我在响应正文中收到此错误(最后一行)MALFORMED_REQUEST我使用的请求是这个(从 println 开始){   "Intent":"sale",   "Payer":{      "Payment_method":"paypal"   },   "Transactions":{      "Amount":{         "Currency":"EUR",         "Total":"12"      },      "Description":"Super test"   },   "Redirect_urls":{      "Return_url":"http://localhost",      "Cancel_url":"http://localhost"   }}在我看来似乎是一个很好的要求......不知道我错过了什么
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您的外壳与文档中的内容不符。如果您的类型上没有 json 标签,则必须添加它们。您必须在 Go 中将属性名称保持为大写,因为它将字段标记为已导出。如果您对此不熟悉,请搜索“未导出的与导出的字段 golang”


例如,您的Payment结构定义需要如下所示;


type Payment struct {

     Amount *Amount `json:"amount"`

     Transactions *Transactions `json:"transactions"`

     RdUrls *Redirect_urls `json:"redirect_urls"`

}

此外,仅供参考,您可以在声明付款的地方使用嵌套那些声明,这样您就不必分配给 , 的本地实例Amount,Transactions并且Redirect_urls为了进行声明。


这就像;


p := &Payment{"sale", payer, &Transactions{amount, "A super test"}, uris}


查看完整回答
反对 回复 2021-11-15
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

问题是交易需要是一个数组。我有多瞎

Transactions []*Transactions `json:"transactions"`


查看完整回答
反对 回复 2021-11-15
  • 2 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信