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

歡迎訪問 生活随笔!

生活随笔

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

php

php实现扫码支付

發布時間:2023/12/31 php 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php实现扫码支付 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.




原理

講之前,首先請先看一下下面這幅圖,這是一個最簡單的掃碼支付功能,圖畫的不好請見諒,下面我簡述一下過程





A1:這一步可以理解成我在京東上下了一個單子,然后請求掃碼支付,服務器收到此請求后,首先在數據庫中生成一條記錄,單子狀態未支付,隨后根據單子生成一個支付二維碼

??? 然后進入A2階段

A2:web端通過移步請求服務器,查詢單子是否支付,如果返回結果未支付,則等待1秒后再次請求,如果返回已支付,則提示用戶支付成功


B1:微信掃描這個二維碼,解析后獲取信息,該信息中至少包含剛剛生成的單子的唯一標識符(比如數據庫表id)

B2:手機端發出請求 攜帶用戶信息和單子的標識符去服務器進行比對,比對結果返回給用戶,如果正確,提示用戶是否確認支付,如果錯誤,如二維碼過期等,提示用戶重新生成二維碼

B3:當提交信息正確,且用戶同意支付,則請求服務器,將該單子的狀態改為已支付 然后提示用戶支付成功 然后參照A2 整個流程完畢


舉例:京東的微信支付,淘寶的支付寶支付

客戶端定時向服務器發送Ajax請求,服務器接到請求后馬上返回響應信息并關閉連接。
優點:后端程序編寫比較容易。
缺點:請求中有大半是無用,浪費帶寬和服務器資源。



輪詢方式的實現

那么現在用代碼段來模擬一下這個過程 假設后端腳本如下

a.php ------ 用來表單提交的數據,生成訂單記錄進數據庫

b.php ------ 用來處理移動端的支付,然后修改數據庫該訂單支付狀態

c.php ------ 用來查詢訂單是否已支付



第一步 記錄該訂單信息?

前端表單訪問a.php 提交信息? 插入數據庫生產訂單 并返回這條訂單編號

insert into XXX('user_id','price','goods_numbers','status')values(...)


第二步? 生成二維碼

????? 利用php QR Code第三發類庫生成 下面只附上簡單實現代碼

下載地址 http://phpqrcode.sourceforge.net/ <?php include_once 'qrcode/phpqrcode.php'; $message = ['user_id'=>'1','price'=>'20.00','goods_number'=>'12345678XXXX' ]; QRcode::png('mywebsite.com/message='.json_encode($message));
?????? 這樣一張包含用戶信息的二維碼鏈接就生成了

第三步 前端輪詢

前端加載二維碼后開始ajax輪詢 c.php查看該訂單是否已支付 當后端返回已支付信息后 前端頁面跳轉

var checkRequest = setInterval(getData, 3000);function getData(){var goods_number = '12345678XXXX';$.ajax({type: "post",dataType: "json",url: 'c.php',data: {"goods_number":goods_number},success: function (data) {if(data.code == 1){//成功 結束計時器 頁面跳轉clearInterval(checkRequest);}}});}
當收到支付完成的狀態時,支付完成

第三步 移動端確認支付

手機端掃描二維碼 拿到其中的信息 確認其中的信息 然后請求b.php這個腳本去完成支付



第四步? 后端修改訂單狀態

后端服務器接到message參數,確認信息無誤,將訂單狀態修改為已支付


由于web頁面在一直請求c.php 當訂單被改成已支付后? web端將收到改信息 然后跳轉頁面即可

輪詢的好處是代碼易于編寫跟維護


在另一篇文章中使用長鏈接來完成掃碼登錄,掃碼登錄和支付的原理一致,僅式后端處理業務的不同,

地址 http://blog.csdn.net/zhangsheng_1992/article/details/51340637

總結

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

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