亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php實現支付寶app支付和異步通知的代碼實例

2020-03-24 18:53:56
字體:
來源:轉載
供稿:網友
本篇文章給大家分享的內容是關于php實現支付寶app支付和異步通知的代碼實例,內容很詳細,有需要的朋友可以參考一下,希望可以幫助到你們。

之前寫過支付寶app支付的支付的后臺代碼,現在來說一下異步通知:

個人感覺支付寶的異步通知,步驟比微信簡單點,但里面的坑可是沒少多少,就一個驗簽就把我整的快瘋了….

異步通知:

1,先確定在支付的時候寫的回調地址的正確性!!!!!!

2.找到支付寶封裝的驗簽類,rsaCheckV1(這個也是在app2.0接口里面)

3.驗證回調參數

*4.檢驗訂單

先確定在支付的時候寫的回調地址的正確性!!!!!!

一定要確定回調地址的寫的是否指到是你寫回調驗證的那個放里面,別到時候在回頭找錯誤的時候,抓耳撓腮..

找到支付寶封裝的驗簽類,rsaCheckV1(這個也是在app2.0接口里面)

這是支付寶已經封裝好的類:

/** rsaCheckV1 rsaCheckV2 * 驗證簽名 * 在使用本方法前,必須初始化AopClient且傳入公鑰參數。 * 公鑰是否是讀取字符串還是讀取文件,是根據初始化傳入的值判斷的。 html' target='_blank'>public function rsaCheckV1($params, $rsaPublicKeyFilePath,$signType= RSA ) { $sign = $params[ sign  $params[ sign_type ] = null; $params[ sign ] = null; $this- alipayrsaPublicKey = $rsaPublicKeyFilePath; return $this- verify($this- getSignContent($params), $sign, $rsaPublicKeyFilePath,$signType); public function rsaCheckV2($params, $rsaPublicKeyFilePath, $signType= RSA ) { $sign = $params[ sign  $params[ sign ] = null; return $this- verify($this- getSignContent($params), $sign, $rsaPublicKeyFilePath, $signType); function verify($data, $sign, $rsaPublicKeyFilePath, $signType = RSA ) { if($this- checkEmpty($this- alipayPublicKey)){ $pubKey= $this- alipayrsaPublicKey; $res = -----BEGIN PUBLIC KEY-----/n . wordwrap($pubKey, 64, /n , true) . /n-----END PUBLIC KEY-----  }else { //讀取公鑰文件 $pubKey = file_get_contents($rsaPublicKeyFilePath); //轉換為openssl格式密鑰 $res = openssl_get_publickey($pubKey); ($res) or die( 支付寶RSA公鑰錯誤。請檢查公鑰文件格式是否正確  //調用openssl內置方法驗簽,返回bool值 if ( RSA2 == $signType) { $result = (bool)openssl_verify($data, base64_decode($sign), $res, OPENSSL_ALGO_SHA256); } else { $result = (bool)openssl_verify($data, base64_decode($sign), $res); if(!$this- checkEmpty($this- alipayPublicKey)) { //釋放資源 openssl_free_key($res); return $result; }

還有就是別把這兩個方法混淆了,前者需要傳signtype,后者不需要(前面兩個方法都會調用第三個方法),還有一點很重要,就是這個方法的本身是從文件里面提取公鑰的的,但是本人是直接傳的,就把這個方法稍加改動了一下,讓它直接讀取我傳的公鑰.這個驗簽方法返回的是(bool)true或者(bool)false,來判斷驗簽是否成功.

在這里要注意三點:

1—注意公鑰的正確性,還有用的是支付寶公鑰不是你當初生成的公鑰
2—區別這里的方法和支付寶接口本身方法的公鑰獲取方式
3—注意接口方法本身的注釋,很重要

驗證回調參數

支付寶的回調參數是以post的方式回傳的,但是我們在測試的時候可以直接把回調url直接寫在地址欄里面,然后用get方式接受,這樣就不用拼參數了,結果是一樣的(回調url可以記錄在log文件里面),還有就是驗簽的時候需要所有的回傳參數原封不動的去驗簽,而這里自己需要什么參數就接收什么參數就可以,這里就不多說了,就是正常的接受參數的問題.下面給出我在驗證參數時,檢驗訂單金額和商家編號的代碼,僅做參考(我用的tp5):

public function check($receipt_amount,$buyer_pay_amount,$order_price,$app_id,$seller_email){ if($receipt_amount !== $order_price || $buyer_pay_amount !== $order_price){// echo 1; return $this- log( 訂單支付金額有誤!  //支付寶支付的所有參數 $alipay_config = Config::get( alipay_config  if($app_id !== $alipay_config[ appid ]){// echo 2; return $this- log( 商家編號有誤!  //驗證收款商家是否正確 if($seller_email !== $alipay_config[ seller_id ]){// echo 3; return $this- log( 收款商家有誤!  return success  }

檢驗訂單

這里主要就是檢驗庫存,這里最好用事物處理,(雖然你的訂單量可能不一定回到這個地步),下面給出我的代碼,僅做參考(tp5):

public function index($order_sn= ) if(isset($_POST[ order_sn ]) empty($order_sn)){ $order_sn = $_POST[ order_sn  $table = self::order_info($order_sn); if($table == failure ){return false } $oid = $table[ order_id  //通過訂單id $oid 查詢出訂單中物品的id $goodsTable = Db::name( goods  $allgoods = Db::name( test1 )- where( o_id , $oid)- field( g_id,g_num )- select(); foreach ($allgoods as $k = $v) { //事務處理 $goodsTable- startTrans();//事物開始 try { //判斷庫存數量 $goodsTable- query( update test2 set g_num = g_num- . $v[ g_num ] . where g_num = . $v[ g_num ] . and gid = . $v[ g_id  } catch (/Exception $e) { $goodsTable- rollBack();//事物回滾 $goodsTable- commit();// 事物提交 //修改訂單 $res = Db::name( test3 )- where( order_sn ,$order_sn)- update([ order_state = 1 , pay_time = time()]); if($res != 0){ return success  }

接下來就是把結果返回給支付寶就可以,失敗:return ‘failure 成功:return ‘success 到這里就結束了.

還有就是在出錯后和在找bug的時候都平心靜氣一些,理智的找問題才會更快的找到問題 ( 如果實在不行就去找支付寶的人工支持,他會為你調試你的代碼,會給出一個差不多的結論,然后你再去改就會容易很多 :) ).

最后希望大家支付,回調都可以成功!

相關推薦:

php如何實現支付寶的APP支付功能(代碼)

以上就是php實現支付寶app支付和異步通知的代碼實例的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91在线直播亚洲| 久久久久久久久网站| 国产精品99久久久久久久久| 国产日本欧美一区| 午夜精品一区二区三区在线播放| 亚洲欧美色婷婷| 欧美又大又粗又长| 日韩欧美有码在线| 国产精品电影久久久久电影网| 久久精品美女视频网站| 国产日韩欧美日韩| 亚洲欧美一区二区三区久久| 91高清视频在线免费观看| 欧美日韩美女在线| 精品国产一区二区三区四区在线观看| 日韩精品高清视频| 成人网页在线免费观看| 国产一区二区三区在线视频| 亚洲欧美一区二区精品久久久| 怡红院精品视频| 欧美一区深夜视频| 正在播放国产一区| 亚洲一区二区三区成人在线视频精品| 久久久久久网站| 欧美日本中文字幕| 亚洲人成网站777色婷婷| 国产精品综合久久久| 日韩av在线免费| 日韩av男人的天堂| 国产精品伦子伦免费视频| 国产午夜精品视频| 色综合色综合久久综合频道88| 国产精品吊钟奶在线| 久久久久久噜噜噜久久久精品| 亚洲乱码国产乱码精品精| 亚洲一区av在线播放| 欧洲美女7788成人免费视频| 青青草原一区二区| 亚洲欧美日本另类| 国产视频久久久久久久| 国产精品久久久91| 国产精品福利观看| 亚洲人成绝费网站色www| 欧美黑人xxx| 国产精品情侣自拍| 久久免费视频在线观看| 久久偷看各类女兵18女厕嘘嘘| 懂色aⅴ精品一区二区三区蜜月| 欧美成人精品h版在线观看| 亚洲网站在线播放| 亚洲xxxx18| 亚洲激情电影中文字幕| 国内精品400部情侣激情| 国产一区二区三区在线观看网站| 欧美精品生活片| 成人啪啪免费看| 在线视频免费一区二区| 日韩免费在线播放| 日本sm极度另类视频| 国产精品视频久久久久| 中文字幕亚洲一区在线观看| 亚洲精品福利视频| 成人高h视频在线| 亚洲激情视频网站| 欧美激情啊啊啊| 日韩精品视频在线播放| 亚洲午夜国产成人av电影男同| 精品一区二区亚洲| 欧美日韩xxxxx| 国产91热爆ts人妖在线| 国内精品视频久久| 国产欧美一区二区三区在线| 亚洲福利在线看| 欧日韩不卡在线视频| 欧美精品激情blacked18| 亚洲伦理中文字幕| 久久精品国产96久久久香蕉| 日韩电影视频免费| 九九热最新视频//这里只有精品| 91精品国产自产91精品| 国产成人综合一区二区三区| 91精品视频在线免费观看| 成人免费午夜电影| 欧美另类第一页| 成人激情av在线| 国产精品xxxxx| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产mv免费观看入口亚洲| 亚洲欧美日韩图片| 日韩电影大全免费观看2023年上| 亚洲偷熟乱区亚洲香蕉av| 91av免费观看91av精品在线| xxx欧美精品| 亚洲曰本av电影| 69视频在线免费观看| 久久久欧美精品| 亚洲视频网站在线观看| 国产精品久久激情| 日韩精品在线观看一区二区| 久久久久久网站| 欧美极品少妇xxxxⅹ裸体艺术| 欧美在线视频观看免费网站| 粗暴蹂躏中文一区二区三区| 欧美日韩国产一区二区| 91久久久久久久| 精品国产一区二区三区久久| 中文字幕亚洲自拍| 97久久久久久| 欧美日韩激情小视频| 91久久久久久久一区二区| 亚洲欧美日韩精品| 亚洲欧洲高清在线| 日韩国产精品亚洲а∨天堂免| 国产精品入口免费视| 国产精品视频999| 国产91精品网站| 揄拍成人国产精品视频| 亚洲免费视频网站| 国产成人亚洲精品| 亚洲网站在线看| 亚洲欧美激情一区| 夜色77av精品影院| 日韩av一区二区在线观看| 亚洲国产欧美在线成人app| 91久久精品国产91久久性色| 国产日韩欧美91| 亚洲成人av中文字幕| 欧美激情精品久久久久久| 国产精品美女久久| 国产日产欧美a一级在线| 国产精品成人一区二区三区吃奶| 青草热久免费精品视频| 高跟丝袜一区二区三区| 日韩中文字幕在线| 国产精品网红福利| 国产精品三级美女白浆呻吟| 91精品视频大全| 日韩国产激情在线| 欧美不卡视频一区发布| 97国产精品视频人人做人人爱| 亚洲成人久久久| 亚洲天堂av在线免费观看| 亚洲美女中文字幕| 高清在线视频日韩欧美| 美乳少妇欧美精品| 欧美日韩国产中文字幕| 日韩欧美国产一区二区| 国产精品白丝av嫩草影院| 亚洲成人动漫在线播放| 国产精品99蜜臀久久不卡二区| 久久精品视频免费播放| 日韩免费电影在线观看| 久久久免费精品| 亚洲精品久久久久中文字幕欢迎你| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲男人的天堂在线播放| www.国产一区| 国产精品视频在线播放| 亚洲娇小xxxx欧美娇小| 成人免费视频xnxx.com| 91热精品视频| 免费av在线一区| 日韩精品在线免费播放| www国产91|