我已经失去了差不多两天的时间来解决与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\"}"
答案 0 :(得分:1)
看起来你是从windows运行的。我尝试从我的Windows和我的测试服务器接收json为'{payer_id
的命令。这是因为你的单引号而发生的。
我已将单引号更改为双引号,并且它在我这里工作正常。
-d "{\"payer_id\" : \"QULQSFESGMCX2\"}"
您可以从控制台运行curl命令,看看会发生什么,之后您可以将其推送到ruby脚本代码中。