php支付處理庫,php實現支付功能

本文目錄一覽:

PHP支付寶介面,付款成功後,返回成功,然後將消費記錄插入到資料庫。插入資料庫的代碼寫在哪個文件里?

付款成功的邏輯處理在noticy文件里,這個文件不可見,是支付寶付款成功後台調用通知你的頁面

return這個文件是付款成功後用戶跳回看到的頁面,

官方的文檔寫的很清楚

下面這句什麼意思呢 PHP支付返回處理 PHP小白不懂 求大神解釋下哈?

accountClass找到這個類所在的文件

::是調用類的靜態方法的標誌

這句的意思就是驗證過支付信息了,更新到資料庫里的狀態

php 後台怎麼把多種支付方式集成在一起 可以先擇性安裝

本文將介紹如何快速通過PHP類庫來集成、整合支付寶來實現充值功能。如果你的系統想要擴充積分、賬戶餘額等功能,那麼就要選擇一個第三方支付系統來充值。

支付寶集成時,需要三大步:

1、通過表單提交信息,系統整合信息,提交信息到支付寶;

2、用戶進行支付後,支付寶後台通知系統處理;

3、支付寶後台通知完成後,支付寶前台跳轉到系統返回地址;

支付寶PHP類

PHP 類alipay_notify,主要功能是付款過程中伺服器通知處理。

PHP 類alipay_service,根據支付寶外部服務介面生成支付寶地址。

我把這2個類,集中到一個文件alipay.class.inc中,點擊這裡查看並下載PHP支付寶類源碼。

下面主要主要講解通過支付寶的PHP類來實現整合。

PHP支付寶集成

第一步,建立提交充值的基本信息:

zhifubao-chongzhi PHP支付寶集成 建立提交充值的基本信息

第二步,驗證用戶提交的金額正確,通過表單驗證後,通過支付寶alipay_service類生成支付寶鏈接,然後跳轉到支付寶鏈接。

function index() {

$total = intval($_POST[‘total’]);

if (!$total) {

$total = 1;

}

$pay_bank = trim($_POST[‘pay_bank’]);

$account = $_POST[‘_account’];

$base_path = 『http://』.$_SERVER[‘HTTP_HOST’].base_path();

$order_id = date(『YmdHis』, time()); //時間值作為唯一的訂單ID號

$subject = $body = 『LixiPHP充值』.$total.』元』;

$out_trade_no = date(『YmdHis』, time()).』-』.$account-student[‘sid’];

//合作身份者ID,以2088開頭的16位純數字

$partner = 』20887015**9*7**』;

//安全檢驗碼,以數字和字母組成的32位字元

$security_code = 『gc2qxh4**ab***3jp8*****2ptxewks4′;

//簽約支付寶賬號或賣家支付寶帳戶

$seller_email = 『seller@alipay.com』;

$_input_charset = “UTF-8”;

$sign_type = “MD5”; //簽名方式

$transport = 『https』;//字元編碼格式

$parameter = array(

“service” = “create_direct_pay_by_user”, //交易類型

“partner” = $partner, //合作商戶號

“return_url” = $base_path.』alipay/return』, //同步返回

“notify_url” = $base_path.』alipay/notify』, //非同步返回

“_input_charset” = 『UTF-8′, //字符集,默認為GBK

“subject” = $subject, //商品名稱,必填

“body” = $subject, //商品描述,必填

“out_trade_no” = $out_trade_no, //商品外部交易號,必填(保證唯一性)

“price” = $total, //商品單價,必填(價格不能為0)

“payment_type” = “1”, //默認為1,不需要修改

“quantity” = “1”, //商品數量,必填

“paymethod” = 『directPay』,

“defaultbank” = $pay_bank,

“logistics_fee” =』0.00′, //物流配送費用

“logistics_payment” =』BUYER_PAY』, //物流費用付款方式:SELLER_PAY(賣家支付)、BUYER_PAY(買家支付)、BUYER_PAY_AFTER_RECEIVE(貨到付款)

“logistics_type” =』EXPRESS』, //物流配送方式:POST(平郵)、EMS(EMS)、EXPRESS(其他快遞)

//”receive _mobile” = 」, //收貨人手機

“show_url” = $base_path, //商品相關網站

“seller_email” = $seller_email, //賣家郵箱,必填

);

require(“../libraries/payment/alipay.class.inc”);

$alipay = new alipay_service($parameter, $security_code, $sign_type);

$link = $alipay-create_url();

header(“Location: “.$link);

}

用戶跳轉到支付寶支付界面後,默認的支付銀行是在提交表單前選擇的網上銀行,選擇支付寶的話就是使用支付寶餘額支付。然後就是等待用戶支付了。用戶完成支付後,請會發生下面的幾個步驟,當然如果用戶放棄支付的話,就沒有後面的處理了。

第三步,用戶進行支付後,支付寶後台通知系統處理。系統處理頁面主要是根據生成支付寶鏈接是使用的notify_url來決定的。它處理完成後,成功返回success,失敗返回fail,如果支付寶收到的是fail,那麼支付寶還會在隔1小時,1天,1周等周期再次通知伺服器處理,這裡的周期需求向支付寶詢問。如果支付寶收到的是success,注意支付寶好像在一個月後要發送一次TRADE_FINISHED表示交易完成,這個一定不要再給用戶加一次充值了。

function alipay_notify() {

$out_trade_no = date(『YmdHis』, time()).』-』.$account-student[‘sid’];

//合作身份者ID,以2088開頭的16位純數字

$partner = 』20887015**9*7**』;

//安全檢驗碼,以數字和字母組成的32位字元

$security_code = 『gc2qxh4**ab***3jp8*****2ptxewks4′;

//簽約支付寶賬號或賣家支付寶帳戶

$seller_email = 『seller@alipay.com』;

$sign_type = “MD5”;

$_input_charset = 『UTF-8′;

$transport = 『https』;

require(“../libraries/payment/alipay.class.inc”);

$alipay = new alipay_notify($partner,$security_code,$sign_type,$_input_charset,$transport);

$verify_result = $alipay-notify_verify();

//支付寶 Notice verify

if($verify_result) {

//認證合格

//獲取支付寶的反饋參數

//獲取支付寶傳遞過來的訂單號

$order_id = $_POST[‘out_trade_no’];

//獲取支付寶傳遞過來的總價格

$total_fee = $_POST[‘total_fee’];

//拆分訂單號為訂單和學員ID

$txn_id = explode(『-』, $order_id);

$real_orderid = $txn_id[0]; //get the real order

$sid = $txn_id[1];

if($_POST[‘trade_status’] == 『TRADE_SUCCESS』) {

//這裡放入你自定義代碼,比如根據不同的trade_status進行不同操作

mysql_query(“UPDATE {student} set balance = balance+%d where sid = %d”, (int) $total_fee, $sid);

mysql_query(“INSERT INTO {payment_receipts} (sid, order_id, amount, received) VALUES (%d, 『%s』, %f, %d)”, $sid, $real_orderid, (int) $total_fee, time());

echo “success”;

}

else {

echo “fail”;

}

}

else {

echo “fail”;

}

}

第四步,用戶完成支付後,支付寶前台跳轉到系統返回地址。這個頁面其實可以只做一個非常簡單頁面,不用做任何驗證。但是為了安全建議也做一下返回驗證。但是最後不要在返回頁面做資料庫操作。

function alipay_return() {

$out_trade_no = date(『YmdHis』, time()).』-』.$account-student[‘sid’];

//合作身份者ID,以2088開頭的16位純數字

$partner = 』20887015**9*7**』;

//安全檢驗碼,以數字和字母組成的32位字元

$security_code = 『gc2qxh4**ab***3jp8*****2ptxewks4′;

//簽約支付寶賬號或賣家支付寶帳戶

$seller_email = 『seller@alipay.com』;

$sign_type = “MD5”;

$_input_charset = 『UTF-8′;

$transport = 『https』;

require(“../libraries/payment/alipay.class.inc”);

$alipay = new alipay_notify($partner,$security_code,$sign_type,$_input_charset,$transport);

$verify_result = $alipay-return_verify();

$order_id = $_GET[‘out_trade_no’]; //獲取訂單號

$total_fee = (int) $_GET[‘total_fee’]; //獲取總價格

$txn_id = explode(『-』, $order_id);

$real_orderid = $txn_id[0]; //get the real order

$sid = $txn_id[1];

//認證合格

if($verify_result) {

$output = 『h2恭喜您,學員ID』.$sid.』充值』.$total_fee.』元成功!/h2』;

$student = mysql_query(“SELECT uid, balance FROM {student} WHERE sid = %d”, $sid);

$output .= 『p您目前的餘額』.$student-balance.』元。/p』;

$output .= l(『查看記錄』, 『user/』.$student-uid.』/depositlogs』);

return $output;

}

else {

$output = 『h2你的訂單支付過程出現故障!/h2』;

$output .= 『p您的交易信息是無效的,如果你使用的是已有的返回信息的話,那麼交易已經成立,你可以查看我的訂單歷史。br如果你是黑客的話,俺是守法的好公民,希望你能饒了我這個小店。』;

$output .= 『/ppa href=”/”返回首頁/a/p』;

return $output;

}

}

如果用戶是惡意修改網址參數,將會看到:

callback return failed 如果用戶是惡意修改網址參數

如果用戶正常通過支付寶自動跳轉回來的,將會看到:

callback return success 如果用戶正常通過支付寶自動跳轉回來的

好的,趕快將以上方法和代碼應用到你的積分、賬戶餘額系統把!

php怎麼做支付系統?

各支付系統會有各自的支付介面。

簡單的說,就是他會找你要每比交易的相關數據,通過這些數據生成支付操作的鏈接,用戶通過這個鏈接完成支付後,支付寶再反饋一個支付狀態結果到你指定的URL,你接受到這個反饋後,再做對應的處理(比如設置訂單狀態為已支付)

所以你要做的就是獲取你自己的數據,並生成支付鏈接,同時做好接受反饋信息的文件。

而這些都已經被響應的支付公司做好了各語言版本的支付借口,一般找他們要,他們就會給你提供一個最簡單的支付介面程序。

當然,也有很多人為了讓支付功能更加適應自己的系統,會在原有介面文件上做適當修改。

給你推薦幾個比較好用的在線支付:

1、支付寶:客服態度很好,需要做介面的話,他會給你提供各語言版的介面文件和說明文件。

2、快錢:同上

3、網銀的支付介面很複雜,如果你沒有經驗的話,不推薦你使用。先不說他成本高是個問題,光是開發介面,就夠你累的,一般網銀不會給你提供完整的介面文件,最多就給你一個說明文件,然後你還得聯繫他們要測試伺服器,出據測試報告,並通過他們的審核後,才會給你開通網銀支付。相比之下太過麻煩。

如果你需要更多的信息,可以給我發站內信。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244273.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:01
下一篇 2024-12-12 13:01

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java和Python哪個功能更好

    對於Java和Python這兩種編程語言,究竟哪一種更好?這個問題並沒有一個簡單的答案。下面我將從多個方面來對Java和Python進行比較,幫助讀者了解它們的優勢和劣勢,以便選擇…

    編程 2025-04-29
  • Python每次運行變數加一:實現計數器功能

    Python編程語言中,每次執行程序都需要定義變數,而在實際開發中常常需要對變數進行計數或者累加操作,這時就需要了解如何在Python中實現計數器功能。本文將從以下幾個方面詳細講解…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python strip()函數的功能和用法用法介紹

    Python的strip()函數用於刪除字元串開頭和結尾的空格,包括\n、\t等字元。本篇文章將從用法、功能以及與其他函數的比較等多個方面對strip()函數進行詳細講解。 一、基…

    編程 2025-04-28
  • 全能的wpitl實現各種功能的代碼示例

    wpitl是一款強大、靈活、易於使用的編程工具,可以實現各種功能。下面將從多個方面對wpitl進行詳細的闡述,每個方面都會列舉2~3個代碼示例。 一、文件操作 1、讀取文件 fil…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27

發表回復

登錄後才能評論