| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | 
							- <?php
 
- /**
 
-  *
 
-  * Alipay.php (支付宝支付模块)
 
-  *
 
-  */
 
- if(!defined("Yourphp")) exit("Access Denied");
 
- class Alipay extends Think {
 
- 	public $config = array()  ;
 
-     public function __construct($config=array()) {
 
-          $this->config = $config;
 
- 		if ($this->config['alipay_pay_type']==1) $this->config['service'] = 'create_partner_trade_by_buyer'; //担保
 
- 		elseif($this->config['alipay_pay_type']==3) $this->config['service'] = 'create_direct_pay_by_user'; //即时
 
-         else $this->config['service'] = 'trade_create_by_buyer';	//标准
 
- 		$this->config['gateway_url'] = 'https://www.alipay.com/cooperate/gateway.do?';
 
- 		$this->config['gateway_method'] = 'POST';
 
- 		$this->config['notify_url'] =  return_url('alipay',1);
 
- 		$this->config['return_url'] =  return_url('alipay');
 
-     }
 
- 	public function setup(){
 
- 		$modules['pay_name']    = L('Alipay_pay_name');
 
- 		$modules['pay_code']    = 'Alipay';
 
- 		$modules['pay_desc']    = L('Alipay_pay_desc');
 
- 		$modules['is_cod']  = '0';
 
- 		$modules['is_online']  = '1';
 
- 		$modules['author']  = 'Ainaphp';
 
- 		$modules['website'] = 'http://www.alipay.com';
 
- 		$modules['version'] = '1.0.0';
 
- 		$modules['config']  = array(
 
- 			array('name' => 'alipay_account',           'type' => 'text',   'value' => ''),
 
- 			array('name' => 'alipay_key',               'type' => 'text',   'value' => ''),
 
- 			array('name' => 'alipay_partner',           'type' => 'text',   'value' => ''),
 
- 			array('name' => 'alipay_pay_type',        'type' => 'select', 'value' => '' ,'option' =>
 
- 			array('1'=>L('alipay_pay_type_option1'),'2'=>L('alipay_pay_type_option2'),'3'=>L('alipay_pay_type_option3')))
 
- 		);
 
- 		return $modules;
 
- 	}
 
- 	public function get_code(){
 
- 		$parameter = array(
 
-             'service'           => $this->config['service'],
 
-             'partner'           =>  trim($this->config['alipay_partner']),
 
-             '_input_charset'    =>  'utf-8',
 
-             'notify_url'        =>  trim($this->config['notify_url']),
 
-             'return_url'        =>  trim($this->config['return_url']),
 
-             /* 商品信息 */
 
-             'subject'           => $this->config['order_sn'],
 
-             'out_trade_no'      => $this->config['order_sn'],
 
-             'price'             => $this->config['order_amount'],
 
- 			'body'				=> $this->config['body'],
 
-             'quantity'          => 1,
 
-             'payment_type'      => 1,
 
-             /* 物流参数 */
 
-             'logistics_type'    => 'EXPRESS',
 
-             'logistics_fee'     => 0,
 
-             'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE',
 
- 			//'agent'             => $this->config['agent'],
 
-             /* 买卖双方信息 */
 
-             'seller_email'      =>  trim($this->config['alipay_account'])
 
-         );
 
-         ksort($parameter);
 
-         reset($parameter);
 
-         $param = '';
 
-         $sign  = '';
 
-         foreach ($parameter AS $key => $val)
 
-         {
 
-             $param .= "$key=" .urlencode($val). "&";
 
-             $sign  .= "$key=$val&";
 
-         }
 
-         $param = substr($param, 0, -1);
 
-         $sign  = substr($sign, 0, -1). $this->config['alipay_key'];
 
-         //$sign  = substr($sign, 0, -1). ALIPAY_AUTH;
 
-         $button = '<span><input type="button"  class="button" onclick="window.open(\''.$this->config['gateway_url'].$param. '&sign='.MD5($sign).'&sign_type=MD5\')" value="'.L('PAY_NOW').'" /></span>';
 
- 		return $button;
 
- 	}
 
- 	public function respond()
 
-     {
 
- 		if (!empty($_POST))
 
-         {
 
-             foreach($_POST as $key => $data)
 
-             {
 
-                 $_GET[$key] = $data;
 
-             }
 
-         }
 
-         $seller_email = rawurldecode($_GET['seller_email']);
 
-         //$order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']);
 
-         $order_sn = trim($_GET['out_trade_no']);
 
-         /* 检查数字签名是否正确 */
 
-         ksort($_GET);
 
-         reset($_GET);
 
-         $sign = '';
 
-         foreach ($_GET AS $key=>$val)
 
-         {
 
-             if ($key != 'sign' && $key != 'sign_type' && $key != 'code' && $key != 'g' && $key != 'm' && $key != 'a')
 
-             {
 
-                 $sign .= "$key=$val&";
 
-             }
 
-         }
 
-         $sign = substr($sign, 0, -1) . $this->config['alipay_key'];
 
-         //$sign = substr($sign, 0, -1) . ALIPAY_AUTH;
 
-         if (md5($sign) != $_GET['sign'])
 
-         {
 
-             return false;
 
-         }
 
-         if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS' || $_GET['trade_status'] =='WAIT_BUYER_CONFIRM_GOODS' ||  $_GET['trade_status'] =='WAIT_BUYER_PAY')
 
-         {
 
-             /* 改变订单状态 进行中*/
 
- 			order_pay_status($order_sn,'1');
 
-             return true;
 
-         }
 
-         elseif ($_GET['trade_status'] == 'TRADE_FINISHED')
 
-         {
 
-             /* 改变订单状态 */
 
- 			order_pay_status($order_sn,'2');
 
-             return true;
 
-         }
 
-         elseif ($_GET['trade_status'] == 'TRADE_SUCCESS')
 
-         {
 
-             /* 改变订单状态 即时交易成功*/
 
- 			order_pay_status($order_sn,'2');
 
-             return true;
 
-         }
 
-         else
 
-         {
 
-             return false;
 
-         }
 
- 	}
 
- }
 
- ?>
 
 
  |