※各位:プラグイン内で「word検索」しただけの結果ですので、間違ってたらフォロー願います。
and 「下記」は、あまり、役に立たない情報かも。(理由:sessionと思ってるけど、そうでもない様なので)
「割引クーポンプラグイン」の決済時「購入品名・金額」画面を見ると、
>決済モジュールで決済金額総計と購入商品小計の合計金額をチェックして一致しないためエラーが出ているのはわかりますが、
ですね。
>どこでチェックされているかがわかりません。
↓
>後払い決済の与信を行いましたが。。。
の結果が
>Response:200 from zzz.zzz.zzz.zzz
>決済金額総計と、購入商品小計の合計金額が一致しません。 from zzz.zzz.zzz.zzz
なので、チェックは「zzz.zzz.zzz.zzz」での「与信チェック」で「判定:否」となっているのではないでしょうか。
上記情報から、検索してみて、
class/client/SC_Mdl_YFCApi_Client_Base.php
/**
* リクエスト
* @param string $url API URL
* @param array $arrSendData 送信データ
* @return bool リクエスト結果
*/
function sendRequest($url, $arrSendData) {
//決済基本クラス取得
$objMdl =& SC_Mdl_YFCApi_Ex::getInstance();
//送信パラメタのロギング
$objMdl->printLog('SendRequest:' . $url);
$objMdl->printLog($arrSendData);
//通信実行
$options = array('timeout' => MDL_YFCAPI_HTTP_TIMEOUT);
$objReq = new HTTP_Request($url, $options);
$objReq->setMethod('POST');
foreach ($arrSendData as $key => $value) {
$objReq->addPostData($key, mb_convert_encoding($value, 'UTF-8'));
}
$ret = $objReq->sendRequest();
//PEARチェック
if (PEAR::isError($ret)) {
$msg = '通信エラー:' . $ret->getMessage();
$this->setError($msg);
return false;
}
//HTTPレスポンスチェック
$code = $objReq->getResponseCode();
$objMdl->printLog('Response:' . $code);
switch ($code) {
case 200:
break;
default:
$msg = 'HTTPレスポンスエラー:CODE:' . $code;
$this->setError($msg);
return false;
break;
}
//レスポンス内容チェック
$response_body = $objReq->getResponseBody();
if (SC_Utils_Ex::isBlank($response_body)) {
$msg = 'レスポンスデータエラー: レスポンスがありません。';
$this->setError($msg);
return false;
}
//レスポンスボディをパース
$arrRet = $this->parseResponse($response_body);
$this->setResults($arrRet);
//エラー確認
if (!SC_Utils_Ex::isBlank($this->getError())) {
return false;
}
return true;
}
が、↓に、どう連携しているのかまでは追えていませんが、(結構、ややこしかったので、断念。)
files¥code¥error.txt
kaara101E 決済金額総計と、購入商品小計の合計金額が一致しません。
(本エラーのlogへの書出しまでの処理は置いておいて)結局は、
$objFormParam->addParam('購入商品小計'.$i, 'subTotal'.$i);
の一つで「割引クーポン金額」を引いて「与信」を掛けるしかないんじゃないでしょうか?
※じゃぁ「の一つで「割引クーポン金額」を引いて」をどうするか、、、ですが、
確か、カート内はsessionに情報を持っていたと記憶しているので、
「割引クーポンプラグイン」での「クーポン利用料」を「LC_PageHelper_Mdl_YFCApi_Deferred.php」の
$objFormParam->addParam('購入商品小計'.$i, 'subTotal'.$i);
の「一つから引く」のかなぁ。。。でも、ここは、sessionではない様な、、、はて?、、、です。
class/pages/helper/LC_PageHelper_Mdl_YFCApi_Deferred.php
/**
* パラメーター情報の初期化を行う.
*
* @param SC_FormParam_Ex $objFormParam SC_FormParam_Ex インスタンス
* @param array $arrPaymentInfo モジュール設定情報
* @param array $arrOrder 受注情報
* @return void
*/
function initParam(&$objFormParam, &$arrPaymentInfo, &$arrOrder)
{
$objFormParam->addParam('加盟店コード', 'ycfStrCode', 11, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('受注番号', 'orderNo', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('受注日', 'orderYmd', 8, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('出荷予定日', 'shipYmd', 8, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('氏名', 'name', 30, MDL_YFCAPI_CONV_OP_DOUBLE, array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('氏名カナ', 'nameKana', 80, 'k', array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('郵便番号', 'postCode', 7, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('住所1', 'address1', 25, MDL_YFCAPI_CONV_OP_DOUBLE, array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('住所2', 'address2', 25, MDL_YFCAPI_CONV_OP_DOUBLE, array('MAX_LENGTH_CHECK'));
$objFormParam->addParam('電話番号', 'telNum', 11, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('メールアドレス', 'email', 64, 'a', array('MAX_LENGTH_CHECK', 'EMAIL_CHECK'));
$objFormParam->addParam('決済金額総計', 'totalAmount', 6, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('送り先区分', 'sendDiv', 1, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('カート社識別コード', 'cartCode', 20, 'a', array('MAX_LENGTH_CHECK'));
$detail_cnt = SC_Util_Mdl_YFCApi_Ex::getCountDetailDeferred($arrOrder);
for($i = 1; $i <= $detail_cnt; $i++){
$objFormParam->addParam('購入商品名称'.$i, 'itemName'.$i, 30, MDL_YFCAPI_CONV_OP_DOUBLE, array('MAX_LENGTH_CHECK'));
$objFormParam->addParam('購入商品数量'.$i, 'itemCount'.$i, 4, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
$objFormParam->addParam('購入商品単価'.$i, 'unitPrice'.$i);
$objFormParam->addParam('購入商品小計'.$i, 'subTotal'.$i);
// 購入者商品名称1は必須
if ($i == 1) {
$objFormParam->overwriteParam('itemName1', 'arrCheck', array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
}
}
...