前提・実現したいこと
Google Apps Scriptを使ってGoogle Form に入力した内容でPOSシステムの「スマレジ」での会員登録をしたいのですが何度やってもうまくいかないためアドバイスをいただきたいです。
Formに入力した内容をJSON形式にしてreqestをしてスマレジで受け取ろうとしています。
発生している問題・エラーメッセージ
reqest body = {"error_code":15,"error":"\u51e6\u7406\u540d\u304c\u7121\u52b9\u3067\u3059\u3002", "error_description":"\u30d1\u30e9\u30e1\u30fc\u30bf\u4e0d\u6b63\u3067\u3059\u3002(procName is empty)"}
処理名が無効と書いてるみたいですが、ちゃんと書いてあると思っているためどこがダメなのかもわからにい状態です。
該当のソースコード
1 2body = {"proc_name":"customer_upd", 3 "prams":{"proc_info": {"proc_division":"U"}, 4 "data":{"table_name":"Customer", 5 "rows":{"customerId": null, 6 "customerCode":memberCode, 7 "rank":memberLank, 8 "lastName": Familyname, 9 "firstName":Firestname, 10 "lastKana": FamilynameKANA, 11 "firstKana": FirestnameKANA, 12 "postCode":postCode, 13 "address": address, 14 "phoneNumber": phoneNumber, 15 "mailAddress": mailAddress, 16 "mailAddress2": mailAddress2, 17 "companyName": companyName, 18 "departmentName": departmentName, 19 "managerialPosition": managerialPosition, 20 "sex": gender, 21 "mailReceiveFlag": mailReceiveflag 22 }}}} 23 24 25 var options = { 26 "Content-type": "application/x-www-form-urlencoded;charset=UTF-8", 27 "accept" : "application/json", 28 "headers": { 29 "X_access_token": "xxxxxxxxxxxxxxxxx", 30 "X_contract_id": "xxxxxxxxxxxxxxxxxxx" 31 }, 32 "method" : "post", 33 "payload" : JSON.stringify(body), 34 "muteHttpExceptions" : true 35 } 36 37 var request = UrlFetchApp.fetch(SmaregiURL, options); 38 Logger.log(request.getResponseCode()); 39 Logger.log("reqest body = " + request.getContentText());
値はすべて変数でFormで入力した値が代入しています。
数字にする必要があるところは文字列を数字になるようにしています。
必ず必要なCustomerIDはいろいろ試しましたが何も変わらずでした。
試したこと
スマレジ側でエラーがあるとメールが送信されるように設定してますがメールが来ません。
スマレジに行ってないということでしょうか
payloadの中身でJSON.stringfyをとると、メールは来るようになるんですが、今度はJSON形式ではありませんとエラーが出ます。
はじめてこういうものに触っているため色々調べながらになっていて初歩的なことも間違えているかもしれません。わかる方アドバイスをいただけたら幸いです。
補足情報(FW/ツールのバージョンなど)
仕様書が見せられないのでもっと自分で調べてやってみます。もし仕様書を見ることができる方でなにが原因かわかる方がいらっしゃいましたらコメントいただけたらと思います。
あなたの回答
tips
プレビュー