 <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http://wiki.sseuu.com/index.php?action=history&amp;feed=atom&amp;title=Notify_wx.php</id>
		<title>Notify wx.php - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.sseuu.com/index.php?action=history&amp;feed=atom&amp;title=Notify_wx.php"/>
		<link rel="alternate" type="text/html" href="http://wiki.sseuu.com/index.php?title=Notify_wx.php&amp;action=history"/>
		<updated>2026-05-03T13:29:08Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.sseuu.com/index.php?title=Notify_wx.php&amp;diff=117712&amp;oldid=prev</id>
		<title>笑笑：创建页面，内容为“&lt;?php /**  * Created by PhpStorm.  * User: Administrator  * Date: 2016/1/27  * Time: 21:56  */   define('IN_API', true); define('CURSCRIPT', 'api'); define('DISABLEX...”</title>
		<link rel="alternate" type="text/html" href="http://wiki.sseuu.com/index.php?title=Notify_wx.php&amp;diff=117712&amp;oldid=prev"/>
				<updated>2022-11-22T00:59:10Z</updated>
		
		<summary type="html">&lt;p&gt;创建页面，内容为“&amp;lt;?php ‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;*  * Created by PhpStorm.  * User: Administrator  * Date: 2016/1/27  * Time: 21:56：&lt;/span&gt;   define(&amp;#039;IN_API&amp;#039;, true); define(&amp;#039;CURSCRIPT&amp;#039;, &amp;#039;api&amp;#039;); define(&amp;#039;DISABLEX...”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Created by PhpStorm.&lt;br /&gt;
 * User: Administrator&lt;br /&gt;
 * Date: 2016/1/27&lt;br /&gt;
 * Time: 21:56&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
define('IN_API', true);&lt;br /&gt;
define('CURSCRIPT', 'api');&lt;br /&gt;
define('DISABLEXSSCHECK', true);&lt;br /&gt;
&lt;br /&gt;
require_once '../../../source/class/class_core.php';&lt;br /&gt;
$discuz = C::app();&lt;br /&gt;
$discuz-&amp;gt;init();&lt;br /&gt;
&lt;br /&gt;
$_G['siteurl'] = str_replace('source/plugin/xigua_re/', '',$_G['siteurl'] );&lt;br /&gt;
require_once 'common.php';&lt;br /&gt;
&lt;br /&gt;
//ini_set('display_errors', 1);&lt;br /&gt;
//error_reporting(E_ALL ^ E_NOTICE);&lt;br /&gt;
//$re = WxPayApi::promotion('201602022028434331035', 'ohvWAwxEy3M9CvZB5J4HFDuOk8Nc', 100, 'test');&lt;br /&gt;
//$re['return_msg'] = diconv($re['return_msg'],'UTF-8', CHARSET);&lt;br /&gt;
//$re['err_code_des'] = diconv($re['err_code_des'],'UTF-8', CHARSET);&lt;br /&gt;
//var_dump($re);&lt;br /&gt;
//if($re['return_code'] == 'SUCCESS'){&lt;br /&gt;
&lt;br /&gt;
//}else{&lt;br /&gt;
//&lt;br /&gt;
//}&lt;br /&gt;
$notifydata = re_notifycheck();&lt;br /&gt;
if($notifydata['validator']) {&lt;br /&gt;
&lt;br /&gt;
    $order_id = $notifydata['order_no'];&lt;br /&gt;
    $postprice = $notifydata['price'];&lt;br /&gt;
    $order = C::t('#xigua_re#xgre_order')-&amp;gt;fetch_by_order_id($order_id);&lt;br /&gt;
&lt;br /&gt;
    if(&lt;br /&gt;
        $order &amp;amp;&amp;amp;&lt;br /&gt;
        $order['paystatus'] == table_xgre_order::PAYWAIT &amp;amp;&amp;amp;&lt;br /&gt;
        $order['sendstatus'] == table_xgre_order::SENDWAIT&lt;br /&gt;
    ) {&lt;br /&gt;
        $shui = intval(round($postprice*($config['bili']/100)));&lt;br /&gt;
        $getprice = $postprice - $shui;&lt;br /&gt;
&lt;br /&gt;
        C::t('#xigua_re#xgre_order')-&amp;gt;finish_order_pay($order_id, $getprice, $notifydata['fromopenid']);&lt;br /&gt;
        C::t('#xigua_re#xgre_user')-&amp;gt;update_notsettled($getprice, $order['touid']);&lt;br /&gt;
&lt;br /&gt;
        if($getprice&amp;gt;= 100 &amp;amp;&amp;amp; $order['toopenid'] &amp;amp;&amp;amp; $getprice&amp;gt;= ($config['min_t']*100)){&lt;br /&gt;
            $re = WxPayApi::promotion($order['order_id'], $order['toopenid'], $getprice, diconv(lang('plugin/xigua_re','datixian'), CHARSET, 'UTF-8'));&lt;br /&gt;
            if(is_array($re['return_msg'])){&lt;br /&gt;
                $re['return_msg'] = var_export($re['return_msg'], TRUE);&lt;br /&gt;
            }&lt;br /&gt;
            $re['return_msg'] = diconv($re['return_msg'],'UTF-8', CHARSET);&lt;br /&gt;
            $re['err_code_des'] = diconv($re['err_code_des'],'UTF-8', CHARSET);&lt;br /&gt;
&lt;br /&gt;
            $re['err_code_des'] = str_replace(lang('plugin/xigua_re','reeorcode'), lang('plugin/xigua_re','lianxi'), $re['err_code_des']);&lt;br /&gt;
            $re['return_msg'] = str_replace(lang('plugin/xigua_re','reeorcode'), lang('plugin/xigua_re','lianxi'), $re['return_msg']);&lt;br /&gt;
&lt;br /&gt;
            if($re['result_code'] == 'SUCCESS'){&lt;br /&gt;
                C::t('#xigua_re#xgre_user')-&amp;gt;update_settled($getprice, $order['touid']);&lt;br /&gt;
            }&lt;br /&gt;
            C::t('#xigua_re#xgre_tixian')-&amp;gt;log(&lt;br /&gt;
                $getprice, $order['toopenid'], $order['touid'], $re['result_code'], $re['err_code_des'], $re['return_msg']&lt;br /&gt;
            );&lt;br /&gt;
        }&lt;br /&gt;
//        notification_add($order['uid'], 'credit', 'addfunds', array(&lt;br /&gt;
//            'order_id' =&amp;gt; $order['order_id'],&lt;br /&gt;
//            'price' =&amp;gt; $order['price'],&lt;br /&gt;
//            'value' =&amp;gt; $_G['setting']['extcredits'][$_G['setting']['creditstrans']]['title'].' '.$order['amount'].' '.$_G['setting']['extcredits'][$_G['setting']['creditstrans']]['unit']&lt;br /&gt;
//        ), 1);&lt;br /&gt;
        if($order['fromuid']){&lt;br /&gt;
            $fromusername = DB::result_first('SELECT username FROM %t WHERE uid=%d', array('common_member', $order['fromuid']));&lt;br /&gt;
        }&lt;br /&gt;
        $from = $order['fromwx'] ? '&amp;lt;img style=&amp;quot;width:20px;height:20px;vertical-align:middle&amp;quot; src=&amp;quot;'.$order['fromwximg'].'&amp;quot;/&amp;gt; '.$order['fromwx'] : ($fromusername ?$fromusername: ($order['fromopenid'] ? $order['fromopenid'] : lang('plugin/xigua_re','niming')));&lt;br /&gt;
&lt;br /&gt;
        notification_add(&lt;br /&gt;
            $order['touid'],&lt;br /&gt;
            'system',&lt;br /&gt;
            lang('plugin/xigua_re', 'noticel'),&lt;br /&gt;
            array(&lt;br /&gt;
                'from' =&amp;gt; $from,&lt;br /&gt;
                'linkword' =&amp;gt; $config['linkword'],&lt;br /&gt;
                'url' =&amp;gt; 'home.php?mod=spacecp&amp;amp;ac=plugin&amp;amp;id=xigua_re:setting',&lt;br /&gt;
            ),&lt;br /&gt;
            1&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
function re_notifycheck() {&lt;br /&gt;
    global $_G;&lt;br /&gt;
&lt;br /&gt;
    $msg = '';&lt;br /&gt;
&lt;br /&gt;
    $notify = WxPayApi::notify($msg);&lt;br /&gt;
&lt;br /&gt;
    if(empty($notify)){&lt;br /&gt;
        $return = array(&lt;br /&gt;
            'return_code'=&amp;gt;'FAIL',&lt;br /&gt;
            'return_msg'=&amp;gt;$msg,&lt;br /&gt;
        );&lt;br /&gt;
        WxPayApi::replyNotify(arr2xml($return));&lt;br /&gt;
        exit;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //checksign&lt;br /&gt;
    $sign = $notify['sign'];&lt;br /&gt;
    unset($notify['sign']);&lt;br /&gt;
&lt;br /&gt;
    ksort($notify);&lt;br /&gt;
    $string = reToUrlParams($notify);&lt;br /&gt;
    $string = $string . &amp;quot;&amp;amp;key=&amp;quot;.WxPayConfig::KEY;&lt;br /&gt;
    $string = md5($string);&lt;br /&gt;
    $result = strtoupper($string);&lt;br /&gt;
    if($result != $sign){&lt;br /&gt;
        $return = array(&lt;br /&gt;
            'return_code'=&amp;gt;'FAIL',&lt;br /&gt;
            'return_msg'=&amp;gt; 'sign error!',&lt;br /&gt;
        );&lt;br /&gt;
        WxPayApi::replyNotify(arr2xml($return));&lt;br /&gt;
        exit;&lt;br /&gt;
    }&lt;br /&gt;
    if($notify['result_code'] == 'SUCCESS') {&lt;br /&gt;
        return array(&lt;br /&gt;
            'validator' =&amp;gt; isset($notify['result_code']) &amp;amp;&amp;amp; $notify['result_code'] == 'SUCCESS' ? 1 : 0,&lt;br /&gt;
            'order_no'  =&amp;gt; $notify['out_trade_no'],&lt;br /&gt;
            'trade_no'  =&amp;gt; isset($notify['transaction_id']) ? $notify['transaction_id'] : '',&lt;br /&gt;
            'price'     =&amp;gt; $notify['total_fee'],&lt;br /&gt;
            'appid' =&amp;gt; $notify['appid'],&lt;br /&gt;
            'notify'    =&amp;gt; arr2xml(array('return_code'=&amp;gt;'SUCCESS')),&lt;br /&gt;
            'location'  =&amp;gt; false,&lt;br /&gt;
            'fromopenid' =&amp;gt; $notify['openid'],&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function arr2xml($data){&lt;br /&gt;
    $xml = &amp;quot;&amp;lt;xml&amp;gt;&amp;quot;;&lt;br /&gt;
    foreach ($data as $key=&amp;gt;$val)&lt;br /&gt;
    {&lt;br /&gt;
        if (is_numeric($val)){&lt;br /&gt;
            $xml.=&amp;quot;&amp;lt;&amp;quot;.$key.&amp;quot;&amp;gt;&amp;quot;.$val.&amp;quot;&amp;lt;/&amp;quot;.$key.&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
        }else{&lt;br /&gt;
            $xml.=&amp;quot;&amp;lt;&amp;quot;.$key.&amp;quot;&amp;gt;&amp;lt;![CDATA[&amp;quot;.$val.&amp;quot;]]&amp;gt;&amp;lt;/&amp;quot;.$key.&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $xml.=&amp;quot;&amp;lt;/xml&amp;gt;&amp;quot;;&lt;br /&gt;
    return $xml;&lt;/div&gt;</summary>
		<author><name>笑笑</name></author>	</entry>

	</feed>