银联商务全民付H5手机wap支付phpdemo

<?php
namespace Pay\Controller;
class AumspayController extends PayController
{
    //银联H5

    /*测试环境:https://qr-test2.chinaums.com/netpay-portal/webpay/pay.do
    生产环境:https://qr.chinaums.com/netpay-portal/webpay/pay.do*/
    public function Pay($array)
    {
        header('Content-Type:text/html;charset=utf8');
        $return  = $this->getParameter('聚合支付', $array, __CLASS__, 1);
        $url='https://qr.chinaums.com/netpay-portal/webpay/pay.do?';
        $param=[
            'msgId'=>'',    //消息id
            'msgSrc'=>'WWW.HSSCLJYZ.COM',
            'msgType'=>'trade.h5Pay',  //支付宝H5:trade.h5Pay微信H5:WXPay.h5Pay银联无卡:qmf.h5Pay云闪付:uac.order
            'requestTimestamp'=>date("Y-m-d H:i:s"),
            'merOrderId'=>'4589'.$return['orderid'],
            'mid'=>'',  //商户号
            'tid'=>'',  //终端号
            'instMid'=>'H5DEFAULT',
            'totalAmount'=>$return['amount']*100,
            'notifyUrl'=>$this->_site . 'Pay_Aumspay_notifyurl',
            'returnUrl'=>$this->_site . 'Pay_Aumspay_callbackurl',
        ];
        ksort($param);
        $str=urldecode(http_build_query($param));
        $param['sign']=strtoupper(md5($str.'商户密钥'));
        $payUrl=$url.urldecode(http_build_query($param));
        redirect($payUrl);
    }
   
    //同步通知
    public function callbackurl()
    {
        $this->EditMoney(substr($_GET['merOrderId'],4), 'Aumspay', 1);
    }
    //异步通知
    public function notifyurl()
    {
        $param=$_POST;
        file_put_contents('./Data/Aumspaynotify.txt',"【".date('Y-m-d H:i:s')."】\r\n".json_encode($_POST)."\r\n\r\n",FILE_APPEND);  
        unset($param['sign']);
        ksort($param);
        $str='';
        foreach ($param as $key => $value) {
            if ($value!='') {
                $str.=$key.'='.$value.'&';
            }
        }
        $str=rtrim($str,'&');
        $str=urldecode(http_build_query($param));      
        $sign=strtoupper(md5($str.'商户密钥'));
        if ($sign==$_POST['sign'] && $param['status']=='TRADE_SUCCESS') {
            $orderid=substr($param['merOrderId'],4);
            $this->EditMoney($orderid, 'Aumspay', 0);
            echo 'SUCCESS';
        }else{
            echo $sign;
        }        
    }
   
}

相关推荐

发表评论

路人甲

网友评论(0)