Changeset 16793


Ignore:
Timestamp:
2007/11/19 12:51:44 (15 years ago)
Author:
satou
Message:

【ペイジェント決済モジュール】
差分照会のリトライに対応しました。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/beta/data/downloads/module/mdl_paygent/mdl_paygent.inc

    r16791 r16793  
    698698function sfUpdatePaymentStatus($objPaygent, $arrSend) { 
    699699    $objQuery = new SC_Query(); 
     700     
    700701    $i = 0; 
     702    $notice_id = 0; 
     703     
    701704    // ¥¹¥Æ¡¼¥¿¥¹¤Î¼èÆÀ 
    702705    while($i < 1000) { 
    703706        $arrRet = sfGetPaymentStatus($objPaygent, $arrSend); 
    704707         
     708        // ¼èÆÀÀ®¸ù 
     709        if($arrRet['success_code'] == '0') { 
     710            $notice_id = $arrRet['payment_notice_id']; 
     711            sfUpdatePaygentOrder($objQuery, $arrRet); 
     712         
     713        // ¼èÆÀ´°Î» 
     714        } elseif($arrRet['success_code'] == '1') { 
     715            gfPrintLog("º¹Ê¬¤Î¼èÆÀ¤¬½ªÎ»¤·¤Þ¤·¤¿¡£"); 
     716            break; 
     717         
    705718        // ¼èÆÀ¼ºÇÔ 
    706         if($arrRet['success_code'] == '1' || !isset($arrRet['success_code'])) { 
    707             gfPrintLog("º¹Ê¬¤Î¼èÆÀ¤¬½ªÎ»¤·¤Þ¤·¤¿¡£"); 
    708             return; 
     719        } elseif($arrRet['payment_notice_id'] == "") { 
     720            $notice_id++; 
     721            $arrErrId[] = $notice_id; 
    709722        } 
    710723         
    711         // ¼èÆÀÀ®¸ù      
    712         if($arrRet['success_code'] == '0') { 
    713             if($arrRet['trading_id'] != "") { 
    714                 // »Ùʧ¥¹¥Æ¡¼¥¿¥¹¤Î¹¹¿· 
    715                 /* 
    716                  * 10:¿½¹þºÑ 
    717                  * 12:»Ùʧ´ü¸ÂÀÚ¤ì 
    718                  * 15:¿½¹þÃæÃÇ 
    719                  * 40:¾Ã¹þºÑ 
    720                  * 43:®Êó¸¡ÃκѠ
    721                  * 61:®Êó¼è¾ÃºÑ 
    722                  * etc 
    723                  */ 
    724                 // Æþ¶âºÑ¤ß¤ËÊѹ¹ 
    725                 if($arrRet['payment_status'] == '40' || $arrRet['payment_status'] == '43') { 
    726                     $arrVal['status'] = ORDER_PRE_END; 
    727                 // ¥­¥ã¥ó¥»¥ë¤ËÊѹ¹ 
    728                 } elseif($arrRet['payment_status'] == '12') { 
    729                     $arrVal['status'] = ORDER_CANCEL; 
    730                 } 
    731                  
    732                 // ¼èÆÀ¥¹¥Æ¡¼¥¿¥¹¤òµ­²±¤¹¤ë¡£ 
    733                 $arrVal['memo07'] = $arrRet['payment_status']; 
    734                 // ºÆÅپȲñ¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¡£ 
    735                 $arrVal['memo10'] = $arrRet['payment_notice_id'];                
    736                 $objQuery->update("dtb_order", $arrVal, "order_id = ?", array($arrRet['trading_id'])); 
    737             } 
    738         }    
    739724        $i++; 
     725    } 
     726     
     727    // ¼èÆÀ¼ºÇÔ¥¹¥Æ¡¼¥¿¥¹¤ÎºÆ¼èÆÀ 
     728    for ($i = 0; $i < count($arrErrId); $i++) { 
     729        $arrRet = sfGetPaymentStatus($objPaygent, $arrSend, $arrErrId[$i]); 
     730        if($arrRet['success_code'] == '0') sfUpdatePaygentOrder($objQuery, $arrRet); 
    740731    } 
    741732} 
     
    769760        $arrRes[] = $objPaygent->resNext(); # Í×µá·ë²Ì¼èÆÀ 
    770761    } 
    771          
     762     
    772763    foreach($arrRes[0] as $key => $val) { 
    773764        // Shift-JIS¤Ç±þÅú¤¬¤¢¤ë¤Î¤Ç¡¢¥¨¥ó¥³¡¼¥É¤¹¤ë¡£ 
     
    775766        gfPrintLog($key."->".$arrRes[0][$key]); 
    776767    } 
     768     
    777769    return $arrRes[0]; 
     770} 
     771 
     772/************************************************************************************************************** 
     773 * ´Ø¿ô̾   ¡§sfUpdatePaygentOrder($objQuery, $arrRet) 
     774 * ½èÍýÆâÍÆ ¡§»Ùʧ¥¹¥Æ¡¼¥¿¥¹¹¹¿· 
     775 * °ú¿ô1    ¡§ 
     776 * °ú¿ô2    ¡§ 
     777 * °ú¿ô3    ¡§ 
     778 * Ìá¤êÃÍ   ¡§¼èÆÀ·ë²Ì 
     779 **************************************************************************************************************/ 
     780function sfUpdatePaygentOrder($objQuery, $arrRet) { 
     781    /* 
     782     * 10:¿½¹þºÑ 
     783     * 12:»Ùʧ´ü¸ÂÀÚ¤ì 
     784     * 15:¿½¹þÃæÃÇ 
     785     * 40:¾Ã¹þºÑ 
     786     * 43:®Êó¸¡ÃκѠ
     787     * 61:®Êó¼è¾ÃºÑ 
     788     * etc 
     789     */ 
     790    if($arrRet['trading_id'] != "") { 
     791        // Æþ¶âºÑ¤ß¤ËÊѹ¹ 
     792        if($arrRet['payment_status'] == '40' || $arrRet['payment_status'] == '43') { 
     793            $arrVal['status'] = ORDER_PRE_END; 
     794        // ¥­¥ã¥ó¥»¥ë¤ËÊѹ¹ 
     795        } elseif($arrRet['payment_status'] == '12') { 
     796            $arrVal['status'] = ORDER_CANCEL; 
     797        } 
     798         
     799        // ¼èÆÀ¥¹¥Æ¡¼¥¿¥¹¤òµ­²±¤¹¤ë¡£ 
     800        $arrVal['memo07'] = $arrRet['payment_status']; 
     801        // ºÆÅپȲñ¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¡£ 
     802        $arrVal['memo10'] = $arrRet['payment_notice_id']; 
     803        $objQuery->update("dtb_order", $arrVal, "order_id = ?", array($arrRet['trading_id'])); 
     804    } 
    778805} 
    779806 
Note: See TracChangeset for help on using the changeset viewer.