<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    TP框架集成支付寶,中轉頁變成gbk編碼

     tp框架中集成支付寶的功能,將支付寶的demo例子存在到下圖位置\Extend\Vendor\Alipay
      生成支付訂單
    /**
    *支付訂單
    */
    publicfunctionpay(){
    header("Content-Type:text/html;charset=utf-8");
    $id=I('post.oid','','htmlspecialchars');
    $DAO=M('order');
    $order=$DAO->where("id=".$id)->find();
    $error="";
    if(!isset($order)){
    $error="訂單不存在";
    }elseif($order['PaymentStatus']==1){
    $error="此訂單已經完成,無需再次支付!";
    }elseif($order['PaymentStatus']==2){
    $error="此訂單已經取消,無法支付,請重新下單!";
    }
    if($error!=""){
    $this->_FAIL("系統錯誤",$error,$this->getErrorLinks());
    return;
    }
    $payType=I('post.payType','','htmlspecialchars');
    #支付寶
    if($payType=='alipay'){
    $this->payWithAlipay($order);
    }
    }
     支付訂單提交
    /**
    *以支付寶形式支付
    *@paramunknown_type$order
    */
    privatefunctionpayWithAlipay($order){
    //引入支付寶相關的文件
    require_once(VENDOR_PATH."Alipay/alipay.config.php");
    require_once(VENDOR_PATH."Alipay/lib/alipay_submit.class.php");
    //支付類型
    $payment_type="1";
    //必填,不能修改
    //服務器異步通知頁面路徑
    $notify_url=C("HOST")."index.php/Alipay/notifyOnAlipay";
    //頁面跳轉同步通知頁面路徑
    $return_url=C("HOST")."index.php/Pay/ok";
    //賣家支付寶帳戶
    $seller_email=$alipay_config['seller_email'];
    //必填
    //商戶訂單號,從訂單對象中獲取
    $out_trade_no=$order['OrderNum'];
    //商戶網站訂單系統中唯一訂單號,必填
    //訂單名稱
    $subject="物流服務";
    //必填
    //付款金額
    #正常金額
    $price=$order['Price'];
    #測試金額
    #$price=0.1;
    //必填
    $body=$subject;
    //商品展示地址
    $show_url=C('HOST');
    //構造要請求的參數數組,無需改動
    $parameter=array(
    "service"=>"create_direct_pay_by_user",
    "partner"=>trim($alipay_config['partner']),
    "payment_type"=>$payment_type,
    "notify_url"=>$notify_url,
    "return_url"=>$return_url,
    "seller_email"=>$seller_email,
    "out_trade_no"=>$out_trade_no,
    "subject"=>$subject,
    "total_fee"=>$price,
    "body"=>$body,
    "show_url"=>$show_url,
    "_input_charset"=>trim(strtolower($alipay_config['input_charset']))
    );
    Log::write('支付寶訂單參數:'.var_export($parameter,true),Log::DEBUG);
    //建立請求
    $alipaySubmit=newAlipaySubmit($alipay_config);
    $html_text=$alipaySubmit->buildRequestForm($parameter,"get","去支付");
    echo$html_text;
    }
    支付寶回調接口
    <?php
    /**
    *支付寶回調接口
    */
    classAlipayActionextendsAction{
    /**
    *支付寶異步通知
    */
    publicfunctionnotifyOnAlipay(){
    Log::write("notify:".print_r($_REQUEST,true),Log::DEBUG);
    require_once(VENDOR_PATH."Alipay/alipay.config.php");
    require_once(VENDOR_PATH."Alipay/lib/alipay_notify.class.php");
    $orderLogDao=M('orderlog');
    //計算得出通知驗證結果
    $alipayNotify=newAlipayNotify($alipay_config);
    $verify_result=$alipayNotify->verifyNotify();
    Log::write('verify_result:'.var_export($verify_result,true),Log::DEBUG);
    if($verify_result){//驗證成功
    //商戶訂單號
    $out_trade_no=$_POST['out_trade_no'];
    //支付寶交易號
    $trade_no=$_POST['trade_no'];
    //根據訂單號獲取訂單
    $DAO=M('order');
    $order=$DAO->where("OrderNum='".$out_trade_no."'")->find();
    //如果訂單不存在,設置為0
    if(!isset($order)){
    $orderId=0;
    }
    else{
    $orderId=$order['id'];
    }
    //交易狀態
    $trade_status=$_POST['trade_status'];
    $log="notifyfromAlipay,trade_status=".$trade_status."alipaysign=".$_POST['sign'].'price='.$_POST['total_fee'];
    $orderLog['o_id']=$orderId;
    if($_POST['trade_status']=='TRADE_FINISHED'||$_POST['trade_status']=='TRADE_SUCCESS'){
    #修改訂單狀態
    if((float)$order['Price']!=(float)$_POST['total_fee']){
    $data['PaymentStatus']='2';
    }else{
    $data['PaymentStatus']='1';
    }
    $DAO->where('id='.$orderId)->save($data);
    }
    $orderLog['pay_id']=$trade_no;
    $orderLog['pay_log']=$log;
    $orderLog['pay_type']='alipay';
    $orderLog['pay_result']='success';
    $orderLogDao->add($orderLog);
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    echo"success";//返回成功標記給支付寶
    }
    else{
    //驗證不通過時,也記錄下來
    $orderLog['pay_log']="notifyfromAlipay,但是驗證不通過,sign=".$_POST['sign'];
    $orderLog['o_id']=-1;
    $orderLog['pay_type']='alipay';
    $orderLog['pay_result']='fail';
    $orderLogDao->add($orderLog);
    //驗證失敗
    echo"fail";
    }
    }
    }
    ?>
      今天在tp框架中集成支付寶功能,跳轉支付寶的時候出現亂碼錯誤。
      需要設定header("Content-Type:text/html;charset=utf-8");
      如果還有亂碼查看日志信息是否出現
      NOTIC:[2]Cannotmodifyheaderinformation-headersalreadysentby(outputstartedat
      上面錯誤,刪除錯誤文件開始的空格
      <emid="__mceDel"></em>

    posted on 2014-11-21 10:50 順其自然EVO 閱讀(520) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

    <2014年11月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产午夜亚洲精品| 亚洲大成色www永久网站| 亚洲AV色吊丝无码| 99久久精品日本一区二区免费| 亚洲AV本道一区二区三区四区| 国产一精品一AV一免费| 久久亚洲综合色一区二区三区| a成人毛片免费观看| 亚洲AV无码不卡无码| 69免费视频大片| 亚洲fuli在线观看| 四色在线精品免费观看| 激情无码亚洲一区二区三区 | 亚洲视频一区二区三区四区| 在线视频观看免费视频18| 亚洲中文字幕AV每天更新| 免费大香伊蕉在人线国产| 国产精品免费一区二区三区| 亚洲AV无码欧洲AV无码网站| 午夜影院免费观看| 激情五月亚洲色图| 国产亚洲精品免费| 免费在线黄色电影| 亚洲AV无码成人专区| 国产美女无遮挡免费视频| 久久久受www免费人成| 久久综合亚洲鲁鲁五月天| 天天看免费高清影视| 一边摸一边爽一边叫床免费视频 | 无码永久免费AV网站| 美女羞羞喷液视频免费| 亚洲无线码在线一区观看| 免费观看激色视频网站bd | 国产亚洲精品AAAA片APP| 337p日本欧洲亚洲大胆裸体艺术| 免费女人高潮流视频在线观看 | 亚洲国产成人精品久久| 国产免费观看网站| 67pao强力打造高清免费| 色综合久久精品亚洲国产| 亚洲视频免费在线观看|