-5

払い戻しの支払いを処理するスクリプトがありますが、それは約 20 年前から機能しなくなりました。2月10日。サーバーが応答する Content-Type はサポートされていません ... ヘッダーの Content-Type が実際には正しいように見えても

その日より前に同じコードが機能していたため、サーバー側で何かが変更されたと思われますが、最近、square-connect API の変更ログにこの問題を説明するものは何もありません。

どんな助けでも大歓迎です:)ありがとう

以下の JSON リクエストとレスポンスを参照してください。

{"method":"POST",
  "headers":
    {"Authorization":"Bearer [mypersonalid]",
     "Accept":"application/json",
     "Content-Type":"application/json"},
     "payload":
       {"payment_id":"[paymentid]",
        "type":"FULL",
        "reason":"reason"
       }
    }"
}


{"type":"bad_request",
 "message":"The Content-Type of this request is not supported. 
            Supported     type(s): application/json"
}
4

2 に答える 2

0

コメントありがとうございます。解決しました!

params に contentType を追加しましたが、機能しませんでしたが、「bad json object」という新しいエラーが発生し始めました。Si、それを検索したところ、「ペイロード」オブジェクトの実際のエンコーディングは「文字列化」する必要があることがわかりました。user1021710 からの回答を参照してください: https://stackoverflow.com/a/18851043/4615977 ("Google Apps Script UrlFetchApp with JSON Payload")

したがって、この場合、 contentType が必要であり、ペイロードのエンコードも必要でした。コードは同じで機能していたため、Google は 2 月中旬頃に独自の API を変更したようです。

ありがとう!

Google アプリ スクリプトを使用して POST 払い戻しリクエストを送信するための基本的なコードの例:

var headers = {
  "Authorization" : autorization,
  "Accept": 'application/json',
  "Content-Type": "application/json",
};

var payload = {
   "payment_id" : paymentid,
   "type" : type,  
   "reason" : reason,
};

var params = {
  "contentType": "application/json",
  "headers" : headers,
  "method" : "post",
  "payload" : JSON.stringify(payload),
};

var url = "https://connect.squareup.com/v1/me/refunds";
paymentsFetch = UrlFetchApp.fetch(url, params);
于 2015-03-08T02:33:22.213 に答える