婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php app支付寶回調(異步通知)詳解

php app支付寶回調(異步通知)詳解

熱門標簽:h5 地圖標注 寶安400電話辦理 沈陽人工智能電銷機器人公司 智能外呼電銷系統 哈爾濱400電話辦理到易號網 合肥外呼系統app 高識別電銷機器人 電銷機器人-快迭智能 拉薩打電話機器人

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

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

異步通知:

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

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

3.驗證回調參數

*4.檢驗訂單

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

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

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

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

/** rsaCheckV1  rsaCheckV2
  * 驗證簽名
  * 在使用本方法前,必須初始化AopClient且傳入公鑰參數。
  * 公鑰是否是讀取字符串還是讀取文件,是根據初始化傳入的值判斷的。
  **/
 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實現的支付寶網頁支付功能示例【基于TP5框架】
  • PHP支付寶當面付2.0代碼
  • php實現單筆轉賬到支付寶功能
  • php支付寶APP支付功能
  • PHP實現QQ、微信和支付寶三合一收款碼實例代碼
  • PHP實現支付寶即時到賬功能
  • thinkPHP框架對接支付寶即時到賬接口回調操作示例
  • PHP接入支付寶接口失效流程詳解

標簽:巴中 威海 梅州 成都 張家口 林芝 山東 泰州

巨人網絡通訊聲明:本文標題《php app支付寶回調(異步通知)詳解》,本文關鍵詞  php,app,支付,寶回,調,異步,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php app支付寶回調(異步通知)詳解》相關的同類信息!
  • 本頁收集關于php app支付寶回調(異步通知)詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    夜夜亚洲天天久久| 日韩欧美一区二区不卡| 91日韩精品一区| 色婷婷精品久久二区二区蜜臀av| 欧美色男人天堂| 精品久久久久久综合日本欧美| 中文字幕不卡一区| 一区二区三区蜜桃| 久久99国产乱子伦精品免费| 波多野结衣在线一区| 欧美福利视频一区| 国产精品欧美久久久久无广告| 一区二区三区国产| 激情小说亚洲一区| 色猫猫国产区一区二在线视频| 欧美一个色资源| 中文字幕一区免费在线观看| 日韩一区欧美二区| 不卡影院免费观看| 91精品国产乱码久久蜜臀| 国产精品人成在线观看免费 | 久久综合九色综合97婷婷女人| 1024国产精品| 青草av.久久免费一区| 99国产欧美另类久久久精品| 777午夜精品免费视频| 中文字幕一区二区视频| 精品一区二区三区视频在线观看 | 大美女一区二区三区| 欧美三片在线视频观看| 欧美国产国产综合| 免费精品视频在线| 在线精品视频一区二区| 久久精品视频一区二区| 婷婷综合另类小说色区| 91麻豆6部合集magnet| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲午夜一二三区视频| 成人精品视频.| 精品成人a区在线观看| 亚洲第一电影网| av高清不卡在线| 久久精品一区二区三区不卡 | 国产91精品一区二区麻豆网站| 欧美一区国产二区| 亚洲一二三四区不卡| 99久久综合精品| 中文字幕乱码久久午夜不卡| 激情综合一区二区三区| 日韩一级高清毛片| 日韩黄色片在线观看| 欧美视频一区在线| 一区二区高清在线| 91蜜桃视频在线| 成人免费一区二区三区视频| 成人深夜在线观看| 国产欧美一区二区精品秋霞影院| 精品一区二区三区免费观看| 欧美一区二区福利在线| 视频一区在线播放| 欧美人动与zoxxxx乱| 亚洲国产一区二区三区青草影视| 色狠狠桃花综合| 一区二区三区四区蜜桃 | 国产欧美精品一区二区三区四区| 久久99精品久久只有精品| 日韩精品中午字幕| 免费人成在线不卡| 欧美日韩亚洲综合一区| 丝瓜av网站精品一区二区| 欧美午夜精品久久久久久超碰| 一区二区三区四区乱视频| 91国偷自产一区二区开放时间| 亚洲欧美一区二区三区极速播放| 成人免费视频视频| 国产精品久久久久久久久图文区| 99riav久久精品riav| 一区av在线播放| 久久电影网电视剧免费观看| 欧美一二三区精品| 久久激情五月激情| 久久精品男人天堂av| 丁香六月综合激情| 亚洲色图欧洲色图婷婷| 91福利国产精品| 日韩精品一区第一页| 日韩免费视频线观看| 毛片基地黄久久久久久天堂| 精品粉嫩aⅴ一区二区三区四区| 国产福利精品一区二区| 日本一区二区三区四区在线视频 | 久久av资源网| 精品不卡在线视频| 久久一日本道色综合| 99热这里都是精品| 亚洲婷婷综合色高清在线| 色欧美片视频在线观看| 亚洲国产成人高清精品| 日韩一区二区影院| 国产福利91精品一区| 综合久久国产九一剧情麻豆| 欧美日韩精品是欧美日韩精品| 奇米四色…亚洲| 国产日韩欧美一区二区三区乱码| 成人美女在线视频| 亚洲一区二区三区国产| 日韩一卡二卡三卡四卡| 激情综合色综合久久| 国产精品入口麻豆原神| 欧美午夜一区二区| 国产一区二区三区av电影| 亚洲欧洲精品天堂一级| 欧美日韩精品三区| 国产在线精品一区二区不卡了| 国产精品国产自产拍高清av| 亚洲在线观看免费视频| 国产亚洲一区二区三区四区 | 日韩精品专区在线影院观看 | 精品国产自在久精品国产| 国产一区二区主播在线| 亚洲人123区| 欧美成人一区二区| 成人久久18免费网站麻豆 | 理论电影国产精品| 亚洲欧美综合另类在线卡通| 欧美日韩aaa| 成人涩涩免费视频| 日一区二区三区| 国产精品久久久久影院色老大| 色婷婷国产精品| 老司机午夜精品| 亚洲精品乱码久久久久久黑人| 日韩欧美中文字幕公布| 99国产精品久久久| 激情亚洲综合在线| 亚洲高清免费在线| 国产网红主播福利一区二区| 7777精品伊人久久久大香线蕉的| 不卡的av在线播放| 麻豆中文一区二区| 亚洲综合男人的天堂| 国产精品―色哟哟| 欧美va亚洲va香蕉在线| 欧美视频一区二区三区在线观看| 国产精品自拍一区| 日韩av二区在线播放| 亚洲欧美视频在线观看视频| 久久美女艺术照精彩视频福利播放| 欧美日韩亚洲不卡| 99久久精品免费观看| 久久99精品久久久久久动态图| 尤物av一区二区| 久久日韩精品一区二区五区| 1区2区3区精品视频| 麻豆国产精品777777在线| 国产成人av影院| 欧美性受xxxx黑人xyx| 久久久久久久久久美女| 亚洲一区二区视频在线观看| 国产一区二区三区在线观看免费 | 成人国产精品免费| 一区二区三区久久| 天天色 色综合| 3d动漫精品啪啪| 麻豆免费看一区二区三区| 一区精品在线播放| 久久久精品中文字幕麻豆发布| 欧美一区二区三区思思人| 欧美综合天天夜夜久久| bt欧美亚洲午夜电影天堂| 国产精品综合av一区二区国产馆| 亚洲精品你懂的| 88在线观看91蜜桃国自产| 成人avav影音| 国产jizzjizz一区二区| 国产一区二区三区免费播放| 另类小说图片综合网| 免费观看91视频大全| 一区二区在线免费观看| 亚洲图片激情小说| 亚洲免费看黄网站| 中文字幕制服丝袜一区二区三区| 国产网站一区二区| 国产精品综合在线视频| 欧美日韩一级二级三级| 91啪亚洲精品| 91在线观看地址| 99精品国产热久久91蜜凸| 不卡av在线网| www.一区二区| 91麻豆免费看片| 91免费国产视频网站| 99精品热视频| 91黄视频在线观看| 欧美区在线观看| 欧美午夜精品理论片a级按摩| 欧美精选一区二区| 国产成人高清在线| 午夜av一区二区三区| 精品国产欧美一区二区|