digichro_sakai

投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------

フォーラムへの返信

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • 返信先: [定期購入] クレジット決済2回目で失敗 #86438
    digichro_sakai
    参加者

    ご返信ありがとうございます。

    クイック決済が必須のこと、承知しました。

    「バッチ処理」の設定が「利用する」にも「利用しない」にもチェックが入っていない状態なのですが、こちらは「利用する」に設定しなければなりませんか?

    以上、お手数をおかけいたしますが、ご教授いただけますと幸いです。
    よろしくお願いいたします。

    digichro_sakai
    参加者

    SSL の異常ではなく、バグになります。

    usc-e-shop/functions/admin_func.php の function usces_get_xml に以下のソースがありますが、PHP 5.6 でSSLの検証方法に変更があるためエラーになります。

    	//$fp = fsockopen('tls://'.$interface['host'],443,$errno,$errstr,30);
    	$fp = @stream_socket_client( 'tlsv1.2://'.$interface['host'].':443', $errno, $errstr, 30 );
    	if( !$fp ){
    		usces_log('zeus API : TLS(v1.2) Error', 'acting_transaction.log');
    		$fp = fsockopen('ssl://'.$interface['host'],443,$errno,$errstr,30);
    		if( !$fp ){
    			usces_log('zeus API : SSL Error', 'acting_transaction.log');
    		}
    	}
    

    参考:PHP 5.6.x における OpenSSL 関連の変更
    http://php.net/manual/ja/migration56.openssl.php

    取り急ぎ、以下のように修正することで改善されます。

    	$caFile = 'client.pem"';
    	$context = stream_context_create(array('ssl' => array(
    		'verify_peer' => false,
    		'verify_peer_name' => false,
    		'allow_self_signed' => false,
    		'cafile' => $caFile,
    	)));
    	$fp = stream_socket_client('ssl://'.$interface['host'] . ':443',$errno,$errstr,30,STREAM_CLIENT_CONNECT,$context);
    	if( !$fp )
    	{
    		//$fp = fsockopen('tls://'.$interface['host'],443,$errno,$errstr,30);
    		$fp = @stream_socket_client( 'tlsv1.2://'.$interface['host'].':443', $errno, $errstr, 30 );
    		if( !$fp ){
    			usces_log('zeus API : TLS(v1.2) Error', 'acting_transaction.log');
    			$fp = fsockopen('ssl://'.$interface['host'],443,$errno,$errstr,30);
    			if( !$fp ){
    				usces_log('zeus API : SSL Error', 'acting_transaction.log');
    			}
    		}
    	}
    

    Welcart の最新のバージョン(1.9.2)でも改善されておりませんので、
    今後の新バージョンでの改善をお願い致します。

2件の投稿を表示中 - 1 - 2件目 (全2件中)