Exemple #1
0
 case "trade_status_sync":
     $default_config = array('secrete_key' => false);
     $service = Configuration::get('ALIPAY_SERVICE_NOTIFY_VERIFY');
     $credentials = AlipayTools::getCredentials($service, $default_config);
     $alipayapi = new AlipayApi($credentials);
     $alipay_notify->setParamList('notify_verify');
     $alipayapi->prepareRequest($alipay_notify, false);
     $url = $alipayapi->createUrl();
     $alipay_notify->setParamList('compare_sign');
     $params = $alipayapi->getProtocolParams();
     unset($params['partner']);
     unset($params['service']);
     $alipayapi->setProtocolParams($params);
     $alipayapi->setSecreteKey(Configuration::get('ALIPAY_SECRETE_KEY'));
     $alipayapi->prepareRequest($alipay_notify);
     if ($alipayapi->getResponse($url) != 'true' || !$alipay_notify->verifyDupplicates() || $alipayapi->getSign() != Tools::getValue('sign')) {
         return;
     }
     if ($alipay_notify->saveNotify()) {
         $alipay = new Alipay();
         $extra_vars = array();
         $extra_vars['transaction_id'] = $alipay_notify->getTradeNo();
         $alipay->validateOrder((int) $alipay_notify->getIdCart(), Configuration::get('PS_OS_PAYMENT'), $alipay_notify->getTotalFee(), 'Alipay', null, $extra_vars, null, false, $alipay_notify->getSecureKey());
         $id_order = (int) Order::getOrderByCartId($alipay_notify->getIdCart());
         if ($id_order) {
             $alipay_notify->saveOrder($id_order);
             header('HTTP/1.1 200 OK');
             echo "success";
             exit;
         }
     }