質問 > 管理機能 > スマレジに対してカテゴリを登録したいのですができません |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sicinui |
投稿日時: 2021/9/24 21:00
対応状況: −−−
|
新米 登録日: 2021/9/24 居住地: 投稿: 2 |
スマレジに対してカテゴリを登録したいのですができません 只今スマレジと連携させるシステムを開発中でして
ECCUBEからスマレジに対してカテゴリを登録しようとしていますが スマレジ側に登録ができません。 下記ソースを試しています。 ----- // ・ スマレジAPIのエンドポイント $url = 'https://webapi.smaregi.jp/access/'; // ・ 「受信設定」に記載されている契約ID $contractId = 'xxxxx'; // ・ 「受信設定」に記載されているアクセストークン $accessToken = 'xxxxxxxxxxxxxxx'; // ・ cURLセッション初期化 $curl = curl_init(); //・ 各種設定を行う // エンドポイント設定 curl_setopt($curl, CURLOPT_URL, $url); // ヘッダー情報設定 curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8', "X-contract-id: $contractId", "X-access-token: $accessToken", ]); // タイムアウト時間設定 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 出力を有効にする curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // POSTリクエストを有効にする curl_setopt($curl, CURLOPT_POST, true); // SSL証明書の検証を無効にする curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([ 'proc_name' => 'category_upd', 'params'=> json_encode([ 'proc_info' => [ 'proc_division' => 'U' ], 'data' => [ 'table_name' => 'Category', 'rows' => [ 'categoryId' => '500', 'categoryName' => 'APIテスト', ] ], ]) ])); // ・ cURLセッション終了 curl_close($curl); ----- JSONに不慣れなもので どこが間違っているかの検討が付いていません。 ECCUBE4、PHP7を使用しています。 下記サイトを参考にしておりまして 情報取得には成功していますのでスマレジとは通信できています。 https://zakkuri.life/%E3%80%90php%E3%80%91%E3%82%B9%E3%83%9E%E3%83%AC%E3%82%B8api%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B/ ソースについてのご指摘、 または、有効なデバッグ方法など ご教授頂けますでしょうか? よろしくお願い致します。 |
468 |
投稿日時: 2021/9/25 10:09
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: スマレジに対してカテゴリを登録したいのですができません 通信を実行するcurl_exec()の記述がないように見受けられますが
投稿時に記載されていないだけでしょうか? ソースに記述していないのであれば、ECCUBEのサーバからスマレジのAPIへ通信が行われていないと思います。 API開発に於いて、なぜデータが登録されないのか?についてはcurl_exec()で返ってくるエラーを確認してデバッグしていくしかないと思います。
|
sicinui |
投稿日時: 2021/9/26 21:43
対応状況: −−−
|
新米 登録日: 2021/9/24 居住地: 投稿: 2 |
Re: スマレジに対してカテゴリを登録したいのですができません ご回答ありがとうございます。
curl_exec()の記述を投稿時にしていませんでした。 下記の内容で実行しておりますが 以下のエラーが出力されます。 エラーの意味を調べてみましたが特定できず、何を修正すべきか ご教授いただけますでしょうか? ---エラー内容(返り値)--- [error_code] => 11 [error] => リクエストデータが正しくありません。 [error_description] => JSON分解不可(code-0,params-0) ---ソース--- // ・ cURLセッション初期化 $curl = curl_init(); //・ 各種設定を行う // エンドポイント設定 curl_setopt($curl, CURLOPT_URL, $url); // ヘッダー情報設定 curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8', "X-contract-id: $contractId", "X-access-token: $accessToken", ]); // タイムアウト時間設定 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 出力を有効にする curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // POSTリクエストを有効にする curl_setopt($curl, CURLOPT_POST, true); // SSL証明書の検証を無効にする curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([ 'proc_name' => 'category_upd', 'params'=> json_encode([ 'proc_info' => [ 'proc_division' => 'U' ], 'data' => [ 'table_name' => 'Category', 'rows' => [ 'categoryId' => '500', 'categoryName' => 'APIテスト', ] ], ]) ])); //curl実行 $response = curl_exec($curl); $responseArray = json_decode(trim($response), true); //★返り値を出力 print_r($responseArray); // ・ cURLセッション終了 curl_close($curl); ------- よろしくお願いいたします。 |
468 |
投稿日時: 2021/9/27 10:55
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: スマレジに対してカテゴリを登録したいのですができません 私はスマレジAPIの仕様までは把握しておりませんので
>[error_code] => 11 >[error] => リクエストデータが正しくありません。 >[error_description] => JSON分解不可(code-0,params-0) 上記の情報を元にスマレジのサポートに確認されたほうが良いのではないでしょうか? json_encode()の内容がスマレジ側で想定している値と異なっているのではないかと予想しますが...
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |