PayPal上的MALFORMED_REQUEST执行付款

时间:2016-01-26 14:58:06

标签: ruby-on-rails curl paypal

我已经失去了差不多两天的时间来解决与PayPal相关的问题。 我在用户批准后尝试执行付款,但每次发送Curl请求时我都会收到MALFORMED_REQUEST。

def execute
 # Get the access_token
    token = get_paypal_token(false)
    payer_id = params[:PayerID]
    payment_id = params[:paymentId]
    # Creating the data object
    stringJson = {:payer_id => "#{payer_id}"}

    # You can see that I hard-coded the payer_id to ensure the JSON is correct
    curlString = `curl -v -H "Authorization: Bearer #{token}" -H "Content-Type:     application/json" -d '{"payer_id" : "QULQSFESGMCX2"}' https://api.sandbox.paypal.com/v1/payments/payment/#{payment_id}/execute/`
end

响应是:

"{\"name\":\"MALFORMED_REQUEST\",\"message\":\"The request JSON is not well formed.\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#MALFORMED_REQUEST\",\"debug_id\":\"6431589715660\"}"

1 个答案:

答案 0 :(得分:1)

看起来你是从windows运行的。我尝试从我的Windows和我的测试服务器接收json为'{payer_id的命令。这是因为你的单引号而发生的。

我已将单引号更改为双引号,并且它在我这里工作正常。

-d "{\"payer_id\" : \"QULQSFESGMCX2\"}"

您可以从控制台运行curl命令,看看会发生什么,之​​后您可以将其推送到ruby脚本代码中。