国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

移動(dòng)端網(wǎng)站怎么做微信支付寶支付

發(fā)表日期:2018-11-12 09:32:52   作者來源:方維網(wǎng)絡(luò)   瀏覽:4307   標(biāo)簽:    

移動(dòng)支付


隨著移動(dòng)互聯(lián)的發(fā)展,無現(xiàn)金時(shí)代成為發(fā)展趨勢,據(jù)有關(guān)報(bào)道,在無現(xiàn)金支付的普及度上,韓國已達(dá)90%,中國為60% ,美國和英國為50%,在大部分發(fā)達(dá)國家,信用卡和交通電子錢包支付為主,而在中國由于信用卡發(fā)展先對較晚,信用體系不健全,地區(qū)發(fā)展不平衡,大部分中西部人民承擔(dān)風(fēng)險(xiǎn)的能力不足,而且信用卡利息比較高,所以信用卡的發(fā)展在中國舉步維艱。當(dāng)時(shí)隨著4G網(wǎng)絡(luò)的普及,人民生活的提高,中國手機(jī)普及率達(dá)到了95%,智能手機(jī)普及率達(dá)到了75%,這為手機(jī)支付的發(fā)展提供了先決條件。
以下是關(guān)于Thinkphp的支付寶接口實(shí)例:
<?php
namespace Home\Service;
class AlipayService {
    /**
     * 支付寶配置信息
     * 本使用包為最新SDK。php5.5+才支持
     * 采用的RSA2加密方式(支付寶推薦),到https://docs.open.alipay.com/291/105971/去下載windows工具,生成公鑰和私鑰,將公鑰在控制臺(tái)上傳設(shè)置,再查看其公鑰填入以下公鑰信息
     */
    function __construct() {
        $payConfig = array(
            'app_id' => D('Config')->get('alipay_partner'), //應(yīng)用ID,您的APPID。2017071907816658
            'merchant_private_key' => '', //應(yīng)用私鑰,您的原始格式RSA私鑰
            'notify_url' => C('PROTOCOL') . $_SERVER['SERVER_NAME'] . U('Pay/alipay_notify_url'), //異步通知地址
            'return_url' => C('PROTOCOL') . $_SERVER['SERVER_NAME'] . U('Pay/alipay_notify_url'), //同步跳轉(zhuǎn)
            'charset' => 'UTF-8', //編碼格式
            'sign_type' => 'RSA2', //簽名方式
            'gatewayUrl' => 'https://openapi.alipay.com/gateway.do', //支付寶網(wǎng)關(guān)
            'alipay_public_key' => '', //支付寶公鑰,查看地址:對應(yīng)APPID下的支付寶公鑰。設(shè)置和支付是兩套內(nèi)容。設(shè)置后學(xué)要到管理平臺(tái)去查看應(yīng)用公鑰
            'pay_log_txt' => . '/Public/alipay_log_bef74b0ac451f8e6e5301453f947499899.txt', //支付日志(需要先建立此文件)
        );
        $this->payConfig = $payConfig;
    }
 
    /**
     * 獲取支付寶配置參數(shù)
     * @return array
     */
    public function getConfig() {
        return $this->payConfig;
    }
 
    /**
     * 設(shè)置支付配置參數(shù)
     * @param $data
     */
    public function setConfig($data) {
        $payConfig = $this->payConfig;
        foreach ($data as $k => $v) {
            $payConfig[$k] = $v;
        }
        $this->payConfig = $payConfig;
    }
 
    /**
     * 支付寶支付
     * @param $data
     */
    public function pay($data) {
        Vendor('Alipay.wappay.service.AlipayTradeService');
        Vendor('Alipay.wappay.buildermodel.AlipayTradeWapPayContentBuilder');
        $config = $this->payConfig;
        $out_trade_no = $data['out_trade_no']; //商戶訂單號(hào),商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號(hào),必填
        $subject = $data['subject']; //訂單名稱,必填
        $total_amount = $data['total_amount']; //付款金額,必填
        $body = $data['body']; //商品描述,可空
        $timeout_express = "1m"; //超時(shí)時(shí)間
        $payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setOutTradeNo($out_trade_no);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setTimeExpress($timeout_express);
        $payResponse = new \AlipayTradeService($config);
        $result = $payResponse->wapPay($payRequestBuilder, $config['return_url'], $config['notify_url']);
    }
 
    /**
     * 記錄支付異步記錄
     * @param $data
     */
    public function setPaylog($data) {
        $config = $this->payConfig;
        $str = serialize($data) . "\r\n==================================================================================\r\n";;
        import("Org.Util.File");
        $file = new \File($config['pay_log_txt']);
        $realfiel = $file->getRealFile();
        file_put_contents($realfiel, $str, FILE_APPEND);
    }
} 支付處理控制器
<?php
namespace Home\Controller;

use Think\Controller;
use Common\Controller\HomeController;
 
class PayController extends HomeController {
    /**
     * 支付寶支付
     * @param $order_number 訂單號(hào)
     */
    public function alipay($order_number) {
        $order = D('Order')->where(array('order_number' => $order_number))->find();
        $orderDetail = D('OrderDetail')->where(array('oid' => $order['id']))->field('pid')->select();
        $firstProduct = D('Products')->where(array('id' => $orderDetail[0]['pid']))->field('title')->find();
        //支付數(shù)據(jù)
        $payData = array(
            'out_trade_no' => $order['order_number'],
            'subject' => D('Config')->get('alipay_subject') . $order_number, //支付主題
            'total_amount' => 0.01, //測試訂單號(hào)0.01元支付$order['real_all_money']
            'body' => $firstProduct['title'] . '等',
        );
        D('Alipay', 'Service')->pay($payData);
    }
 
    /**
     * 支付寶回調(diào)地址
     */
    public function alipay_notify_url() {
        //記錄日志,這里最好放在開頭以防下面代碼邏輯有誤不能正常發(fā)現(xiàn)是否被調(diào)用
        D('Alipay', 'Service')->setPaylog($logArr);
 
        Vendor('Alipay.wappay.service.AlipayTradeService');
        $payConfig = D('Alipay', 'Service')->getConfig();
        $arr = $_POST;
        $logArr = $arr;
        $alipaySevice = new \AlipayTradeService($payConfig);
        $alipaySevice->writeLog(var_export($_POST, true));
        $result = $alipaySevice->check($arr);
        if ($result) {
            //驗(yàn)證成功
            $out_trade_no = $_POST['out_trade_no']; //商戶訂單號(hào)
            $trade_no = $_POST['trade_no']; //支付寶交易號(hào)
            $trade_status = $_POST['trade_status']; //交易狀態(tài)
            if ($_POST['trade_status'] == 'TRADE_FINISHED') {
                //交易結(jié)束,不可退款
            } else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
                //交易支付成功
                $re = D('Order')->setPay($out_trade_no, 1);
            }
            echo "success"; //請不要修改或刪除
            $logArr['result'] = "success";
        } else {
            //驗(yàn)證失敗
            echo "fail"; //請不要修改或刪除
            $logArr['result'] = "fail";
        }
    }
 
    /**
     * 支付成功跳轉(zhuǎn)地址
     */
    public function resultinfo() {
        $ModelObj = D('Order');
        $order_number = I('out_trade_no');
        $order = $ModelObj->where(array('order_number' => $order_number))->find();
        $this->order = $order;
        $this->display('pay_ok');
    }
}
   支付寶的接口相對于微信要簡單的多,而且移動(dòng)端會(huì)自動(dòng)調(diào)出支付寶支付,而微信就麻煩的很,第三方要申請H5支付,微信中打開調(diào)用的不是H5支付,又要單獨(dú)處理。
所以微信支付比支付寶的麻煩。 


 
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://pdcharm.com/news/4736.html
象州县| 柳林县| 邮箱| 雅江县| 宜春市| 新绛县| 白水县| 海阳市| 重庆市| 广东省| 丽江市| 延吉市| 柳州市| 昌都县| 龙胜| 石景山区| 孟村| 北安市| 漳平市| 望城县| 潼南县| 大悟县| 望城县| 青阳县| 晋城| 博湖县| 从化市| 海门市| 淳化县| 尉氏县| 奈曼旗| 灌阳县| 汾西县| 孝感市| 疏附县| 上虞市| 瑞丽市| 四子王旗| 疏勒县| 视频| 渑池县|