日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

laravel+php+支付功能,laravel+微信支付源码

發布時間:2024/9/19 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel+php+支付功能,laravel+微信支付源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

業務流程時序圖

?image

仔細閱讀并看懂 (不是看過,是看明白+看完 ) 微信官方文檔 微信開放平臺文檔;

1.下載微信支付php demo 放在自己的線上服務器上,配置好ngixn(或者apache)網站根目錄到php_sdk_v3.0.9/ 下面,將APPID等填入WxPay.Config.php 文件 配置好微信支付需要的信息。

2.商戶號微信支付回調地址配成 www.xxx.com/;公眾號配置好回調url (方便或者openid)。

3.demo已經準備就緒,瀏覽器訪問www.xxx.com/jsapi.php 出現支付頁面,點擊支付,彈出輸入密碼界面,完美!demo已經運行成功,說明微信平臺配置沒有問題,有問題的請返回去看一下微信的官方文檔。

4.接下來進入主題,準備好laravel(我用的是5.4),將php_sdk_v3.0.9/ 復制到app/下改名Wecaht/

?image

5.這幾個文件都要改一下require的路徑,改為絕對路徑 例如:

require_once DIR."/../lib/WxPay.Config.Interface.php";

?image

6.復制jsapi.php 到resources/views/ 改名jsapi.blade.php

?image

7.jsapi.blade.php 源碼如下<?php ?require_once?__DIR__.'/../../../app/Wecaht/lib/WxPay.Api.php';require_once?__DIR__.'/../../../app/Wecaht/example/WxPay.JsApiPay.php';//?require_once?__DIR__.'/../../../app/Wecaht/example/log.php';//?$logHandler=?new?CLogFileHandler(storage_path('logs').'wechat'.date('Y-m-d').'.log');//?$log?=?Log::Init($logHandler,?15);//①、獲取用戶openid$tools?=?new?JsApiPay();?$openId?=?$tools->GetOpenid("/pay/wechat?sn=".$orderInfo['sn']);?//傳參要這樣傳,還要改一下example/WxPay.JsApiPay.php文件//②、統一下單$input?=?new?WxPayUnifiedOrder();$input->SetBody("微信支付");$input->SetAttach("微信支付");//?$input->SetOut_trade_no('xxx'.date("YmdHis").rand(1,100));$input->SetOut_trade_no($orderInfo['sn']);$input->SetTotal_fee($orderInfo['payment']*100);$input->SetTime_start(date("YmdHis"));$input->SetTime_expire(date("YmdHis",?time()?+?600));$input->SetGoods_tag("一袋鹽");$input->SetNotify_url("http://www.xxx.xyz/pay/notify");//這里填你的回調路徑,是絕對路徑,例如http://aaa.com/wechat/notify$input->SetTrade_type("JSAPI");$input->SetOpenid($openId);$config?=?new?WxPayConfig();//?$logHandler->write(json_encode($input));//?print_r($input);die;$order?=?WxPayApi::unifiedOrder($config,$input);//?echo?'**統一下單支付單信息**?';$jsApiParameters?=?$tools->GetJsApiParameters($order);?//獲取共享收貨地址js函數參數//?$editAddress?=?$tools->GetEditAddressParameters();?//③、在支持成功回調通知中處理成功之后的事宜,見?notify.php/**?*?注意:?*?1、當你的回調地址不可訪問的時候,回調通知會失敗,可以通過查詢訂單來確認支付是否成功?*?2、jsapi支付時需要填入用戶openid,WxPay.JsApiPay.php中有獲取openid流程?(文檔可以參考微信公眾平臺“網頁授權接口”,?*?參考http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html)?*/???>?**該筆訂單支付金額為{{$sum}}元**?立即支付

WxPay.JsApiPay.php 還要改個東西public?function?GetOpenid($addUrl="")?{?//通過code獲得openid?if?(!isset($_GET['code'])){?//觸發微信返回code碼?$baseUrl?=?urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$addUrl);?$url?=?$this->_CreateOauthUrlForCode($baseUrl);?Header("Location:?$url");?exit();?}?else?{?//獲取code碼,以獲取openid?????????$code?=?$_GET['code'];?$openid?=?$this->getOpenidFromMp($code);?return?$openid;?}?}

8.新建AppControllerpublic?function?wechat(Request?$request)?????{?????????log::info("AppController?wechat?input",$request->all());?????????if(!$request->input('sn')){?????????????return?redirect()->back();?????????}?????????$orderInfo?=?object2array2(OMD::where('sn',$request->input('sn'))->first());?????????if(!$orderInfo){?????????????return?redirect()->back();?????????}?????????return?view("jsapi")?????????????->with(['orderInfo'=>$orderInfo]);//把參數帶到jsapi.blade.php?????}?public?function?notify(Request?$request){?????????$all?=?$request->all();?????????Log::info('AppController?notify?input:',?$all);?????//你的回調業務邏輯?????}

創建路由Route::group(['prefix'?=>?'pay'?,'namespace'?=>?'App'],?function?()?{?//微信支付?????Route::any('wechat','AppController@wechat');??????Route::any('notify','AppController@notify');?});

9.到此大功告成,下次更新一個基于EasyWacht的教程。

作者:刀魚要到島上掉

鏈接:https://www.jianshu.com/p/a25de96e9405

總結

以上是生活随笔為你收集整理的laravel+php+支付功能,laravel+微信支付源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。