Пример #1
0
 /**
  * This method compares the Sign string sent by Alipay's response with a Sign string generated with local values
  * @return bool
  */
 public function compareSign()
 {
     require_once dirname(__FILE__) . '/alipay.api.php';
     $default_config = array('partner_id' => false, 'service' => false);
     $credentials = AlipayTools::getCredentials(false, $default_config);
     $alipayapi = new AlipayApi($credentials);
     $generated_string = $alipayapi->getResponseSign($this);
     if ($this->sign != $generated_string) {
         return false;
     }
     return true;
 }
Пример #2
0
 *
 * First, we need to verify the genuineness of the notification by calling the Alipay "notify_verify" service
 * Then we performs some tests with local values
 * Finally, after we made the proper actions, we need to answer to Alipay with the word "success" or "fail"
 * @see AlipayNotify
 */
require_once '../../config/config.inc.php';
require_once dirname(__FILE__) . '/alipay.php';
require_once dirname(__FILE__) . '/api/loader.php';
$alipay_notify = new AlipayNotify();
$alipay_notify->getPostData();
switch ($alipay_notify->getNotifyType()) {
    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()) {
Пример #3
0
 /**
  * This method download the Settlement File
  */
 public function postProcessSettlementFile()
 {
     include_once _PS_MODULE_DIR_ . 'alipay/api/loader.php';
     $service = Configuration::get('ALIPAY_SERVICE_LIQUIDATION_FILE');
     $credentials = AlipayTools::getCredentials($service, false);
     $alipayapi = new AlipayApi($credentials);
     $settlement_request = new SettlementFileRequest();
     $settlement_request->setStartDate(str_replace('-', '', Tools::getValue('from_settlement')));
     $settlement_request->setEndDate(str_replace('-', '', Tools::getValue('to_settlement')));
     $alipayapi->prepareRequest($settlement_request);
     $url = $alipayapi->createUrl();
     $xml = simplexml_load_string(Tools::file_get_contents($url));
     if ($xml) {
         $response = $alipayapi->getResponse($url);
         $xmlObj = new SimpleXMLElement($response);
         $this->context->controller->errors[] = sprintf($this->l('An error occurred: %s'), $xmlObj->error);
     } else {
         Tools::redirect($url);
     }
 }