溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用PHP實(shí)現(xiàn)支付寶和微信掃碼在線支付的功能

發(fā)布時(shí)間:2021-09-14 11:56:39 來(lái)源:億速云 閱讀:242 作者:chen 欄目:MySQL數(shù)據(jù)庫(kù)

本篇內(nèi)容介紹了“怎么用PHP實(shí)現(xiàn)支付寶和微信掃碼在線支付的功能”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

PHP支付寶和微信掃碼在線支付實(shí)例,這是PC端的掃碼支付,支付成功后,在回調(diào)地址顯示支付相關(guān)信息。

怎么用PHP實(shí)現(xiàn)支付寶和微信掃碼在線支付的功能

操作步驟:

1.修改配置文件 Application/common/conf/config.php

$arr = array( 
    'DB_TYPE' => 'mysql', 
    'DB_HOST' => "localhost", 
    'DB_NAME' => 'demo', 
    'DB_USER' => "sucaihuo.com", 
    'DB_PWD' => "sucaihuo.com", 
    'DB_PORT' => 3306, 
    'DB_PREFIX' => '', 
);

2.修改支付寶和微信支付配置信息Application/home/conf/config.php

支  付寶請(qǐng)到支付寶商戶官網(wǎng)申請(qǐng):https://b.alipay.com/?ynsrc=zhuzhanA,微信支付配置申請(qǐng):https:  //mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN

$arr = array( 
    'URL_ROUTER_ON' => true, 
    /* 支付設(shè)置 */ 
    'payment' => array( 
        'alipay' => array( 
            // 收款賬號(hào)郵箱 
            'email' => 'sucaihuo@126.com', 
            // 加密key,開(kāi)通支付寶賬戶后給予 
            'key' => 'ggo084pb84gl43qnw82a39n9b7r1jq2m', 
            // 合作者ID,支付寶有該配置,開(kāi)通易寶賬戶后給予 
            'partner' => '2088901006538525', 
            //收款支付寶賬號(hào),以2088開(kāi)頭由16位純數(shù)字組成的字符串,一般情況下收款賬號(hào)就是簽約賬號(hào) 
            'seller_id' => '2088901006538525', 
            //簽名方式 
            'sign_type' => strtoupper('MD5'), 
            //字符編碼格式 目前支持utf-8 
            'input_charset' => strtolower('utf-8'), 
            // 產(chǎn)品類型,無(wú)需修改 
            'service' => 'create_direct_pay_by_user', 
            // 支付類型 ,無(wú)需修改 
            'payment_type' => '1', 
        ), 
          'alipaywap' => array( 
            // 收款賬號(hào)郵箱 
            'email' => 'sucaihuo@126.com', 
            // 加密key,開(kāi)通支付寶賬戶后給予 
            'key' => 'ggo084pb84gl43qnw82a39n9b7r1jq2m', 
            // 合作者ID,支付寶有該配置,開(kāi)通易寶賬戶后給予 
            'partner' => '2088901006538525', 
            //收款支付寶賬號(hào),以2088開(kāi)頭由16位純數(shù)字組成的字符串,一般情況下收款賬號(hào)就是簽約賬號(hào) 
            'seller_id' => '2088901006538525', 
            //簽名方式 
            'sign_type' => strtoupper('MD5'), 
            //字符編碼格式 目前支持utf-8 
            'input_charset' => strtolower('utf-8'), 
            // 產(chǎn)品類型,無(wú)需修改 
            'service' => 'alipay.wap.create.direct.pay.by.user', 
            // 支付類型 ,無(wú)需修改 
            'payment_type' => '1', 
        ), 
        'wechatjspai' => array( 
            'APPID' => 'wx422126b0b62bbfcfc', 
            'MCHID' => '1349825901', 
            'KEY' => '2088901006538525', 
            'APPSECRET' => '45843e705995a12106155f4c26f716dc', 
        ), 
    ) 
);

只要操作以上兩個(gè)步驟,即可調(diào)通支付寶和微信在線支付,以下為支付代碼教程。

訂單生成代碼如下: Application\Home\Controller\PayController.class.php

public function submit() { 
        $paytype = I("post.paytype"); 
        $data['order_money'] = I("post.money", 1);//訂單金額 
        $data['order_no'] = date("YmdHis") . rand(1000, 9999);//訂單號(hào) 
        $data['pay_type'] = $paytype; 
        $data['addtime'] = time(); 
        M("order")->add($data); 
        $site_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
        $dir = dirname($site_url); 
        $data['url_notify'] = $dir . "/Notify/pay_alipay";//回調(diào)地址 
        $data['url_return'] = $dir . "/Pay/order_detail";//返回地址 
        $data['title'] = "標(biāo)題" . $data['order_no']; 
        $data['body'] = "主體內(nèi)容" . $data['order_no']; 
        if ($paytype == 'alipay') { 
            $this->alipay_jump($data); 
        } elseif ($paytype == 'wechat_code') { 
            $data['url_notify'] = $dir . "/Notify/pay_weixin"; 
            $this->wechat_jump($data); 
        } 
    }

支付成功回調(diào),更改訂單狀態(tài)為已付款: Application\Home\Controller\NotifyController.class.php

public function pay_weixin() { 
        $simple = json_decode(json_encode(simplexml_load_string($GLOBALS['HTTP_RAW_POST_DATA'], 'SimpleXMLElement', LIBXML_NOCDATA)), true); 
 
        $notify_data['order_no'] = $notify_data['trade_no'] = $simple['out_trade_no']; 
        $notify_data['third_id'] = $simple['transaction_id']; 
        $notify_data['pay_money'] = $simple['total_fee']; 
 
        $notify_data['payment_method'] = 'weixin'; 
 
//   $sign = $simple['sign']; 
//        file_put_contents('ac_simple.txt', json_encode($simple)); 
//        file_put_contents('ac_notify_data.txt', json_encode($notify_data)); 
 
        $this->order_pay($notify_data); 
    } 
 
    public function pay_alipay() { 
        $notify_data['order_no'] = $notify_data['trade_no'] = I("post.out_trade_no"); 
        $notify_data['third_id'] = I("post.trade_no"); 
        $notify_data['pay_money'] = I("post.total_fee"); 
        $notify_data['payment_method'] = 'alipay'; 
        $this->order_pay($notify_data); 
        file_put_contents('ac_notify_data.txt', json_encode($_REQUEST)); 
    } 
 
    /** 
     * 支付結(jié)果返回 
     */ 
    public function order_pay($data_order) { 
 
        $order_no = $data_order['order_no']; 
        if ($order_no == '') { 
            return false; 
        } 
        $order_info = M('order')->where(array("order_no" => $order_no))->find(); 
        if ($order_info['state'] == 0) { 
            $data_order['update_time'] = $_SERVER ['REQUEST_TIME']; 
            $data_order['state'] = 1; // 已付款 
            M('order')->where(array("order_no" => $order_no))->save($data_order); 
        } 
    }

“怎么用PHP實(shí)現(xiàn)支付寶和微信掃碼在線支付的功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI