1. 程式人生 > >支付寶APP支付開始遇到的一個小坑

支付寶APP支付開始遇到的一個小坑

支付寶APP支付的第一步是需要由服務端呼叫支付寶介面(類似預建立),獲得一個orderInfo(這個orderInfo包含了訂單資料)返回給客戶端,客戶端呼叫支付寶SDK發起支付時需要這個orderInfo。

那麼,

由官網文件,下載的服務端sdk來發起請求,通過response.getBody()就獲得了orderInfo。

看了下日誌,這個orderInfo帶有一個大概是alipay-sdk的欄位,

問題是客戶端這邊拿到的安卓的呼叫demo,所給的orderInfo示例卻沒有這個欄位,而且呼叫demo發起支付成功。

好吧,沒關係,先測試看看。

(由於測試用的支付金額超過下限->這個是根本原因,但一開始我們還不知道),客戶端發起支付失敗,提示的是“該操作已取消”,根據返回碼也無法在官網找到任何對應的說明,另一邊,後臺預訂單卻得到success的返回,(坑就坑在客戶端sdk沒有顯示金額下限的通知),只是告知操作失效。

由此,結合上面的那個區別。

我們懷疑是orderInfo的alipay-sdk這個欄位多餘了,截掉這個欄位,客戶端再發起支付,這次不會操作失效了,返回40002一看是簽名無效,開始懷疑起簽名問題。。。然後各種找,看到sdk原始碼裡面去了解簽名的具體細節,最後發現並沒有問題(其實我們傻了,生產開發出的SDK怎麼會那麼容易有bug人家都不知道測了幾週期,但缺少友好說明,我們實在難以排查問題)。

後來近乎崩潰,

就用阿里給的簽名工具試試吧,並用安卓那個能成功調起支付的demo裡的orderInfo來改,(它的簽名肯定沒有問題吧哈哈),然後一個個修改引數測試,得到簽名,然後自己拼裝orderInfo給客戶端去調,最後發現只有totalAmount出了事,突然間恍然大悟,阿里的伺服器驗證步驟應該是1. 簽名驗證—2.引數合理化驗證—

所以我們之前帶了alipay-sdk欄位的orderInfo其實已經通過了簽名驗證,只是在金額totalAmount這一步被發現超出下限了,所以客戶端無法成功掉起sdk。

再回去官網一個個連結路徑翻看文件,終於在某個“角落”看到了totalAmount的區間,最低0.01。

行了,這下行了,直接改totalAmount,果然OK。

總結一下,我們到底想說明什麼呢:

1、測試用例的選取問題,我們其實太笨,沒考慮到測試用例的合理性

2、支付寶的返回資訊還是咳咳咳啊,真的,返回msg不夠明白的話我們用的人真的只能踩坑哈哈

相關推薦

支付APP支付開始遇到的一個

支付寶APP支付的第一步是需要由服務端呼叫支付寶介面(類似預建立),獲得一個orderInfo(這個orderInfo包含了訂單資料)返回給客戶端,客戶端呼叫支付寶SDK發起支付時需要這個orderInfo。 那麼, 由官網文件,下載的服務端sdk來發起請求,通過respo

一點一滴開始搭建自己的專案框架之支付支付APP支付

       專案框架: 專案框架        最近在封裝傳值方式  準備把json、fromData等傳值方式封裝成一個體系  可惜封裝了半天還是接不到 可能是對HTTP的協議瞭解的

支付 app支付 沙盤使用

gin 所有 必須 com watermark pda 權限 enter htm 文檔說明 沙箱測試: App支付沙箱接入註意點 1、app支付支持沙箱接入;在沙箱調通接口後,必須在線上進行測試與驗收,所有返回碼及業務邏輯以線上為準;2、app支付只支持余額支付,

支付app支付java後臺流程及原理分析

system 分析 req eterm 格式 prop 通過 false 由於 java版支付寶app支付流程及原理分析   本實例是基於springmvc框架編寫 一、流程步驟 1.執行流程 當手機端app(就是你公司開發的a

支付APP支付裏設置應用網關和授權回調地址是不必填的

read 1-1 mage tid app blog cnblogs opencl ref 支付寶APP支付裏設置應用網關和授權回調地址位置為: 支付寶app支付應用網關和授權回調地址為非必填,詳細解釋鏈接:https://openclub.alipay.com/read.

android 集成支付app支付(原生態)-包括android前端與java後臺

請求 call 修改 quest ali log gif 操作 asm 本文講解了 android開發的原生態app集成了支付寶支付, 還提供了java後臺服務器處理支付寶支付的加密代碼, app前端與java後臺服務器使用json數據格式交互信息,java後臺服務主要用來

H5集成支付App支付客戶端+服務端(java)

XML 服務端 onf response 成功 code default format sim 由於最近項目需要接入第三方開發,支付寶支付,微信支付,OSS圖片上傳以及短信服務。為避免第一次開發支付寶再次花時間查看文檔,今天總結一下接入支付寶的過程,以及接入過程中遇到的問題

支付 APP支付 錯誤碼

需要 app 返回 ron str 一個 行處理 appid 分號 出現_38173_這個錯誤碼的原因是服務器返回給前端的字符串中 有一個map; 三個字母一個分號 需要在前端用戶字符串處理函數進行處理後 在進行後續操作 出現_10146_這個錯誤嗎的原因 1.你的APPI

支付APP支付整合+.net(沙箱除錯)

1.服務端整合程式碼 private const string APPID = "發起請求的應用ID"; private const string APP_PRIVATE_KEY = "私鑰"; private const string ALIPAY

支付APP支付——支付流程說明及示例

轉自:https://blog.csdn.net/flygoa/article/details/54891473   支付寶APP支付——支付流程說明及示例 官方示例圖 螞蟻金服開放平臺文件:地址 官方流程圖:地址 如圖,以Android平臺為例: 第4步:呼叫支付介

支付APP支付 統一下單 php服務端 tp5

/*支付寶第三方支付 * *生成APP支付訂單資訊 * @param number  uid 使用者id * @param string   token 使用者token * @param number  oid

PHP 支付APP支付 (TP5)

PHP交流群:294088839 1.進行支付請求 require_once './payment/zfb/pagepay/service/AlipayTradeService.php'; require_once './payment/zfb/pagepay/buildermodel/

支付APP支付

一、基礎說明 現在開發一個電商APP,最少不了的就是支付,目前最常見的支付有微信支付和支付寶支付,先來介紹支付寶APP支付,其實支付寶的文件說明已經很清楚了,裡面有很多demo,你還可以通過沙箱環境去除錯支付。螞蟻金服開放平臺地址:https://open.alipay.com/developmentAcc

關於tp5使用微信支付app支付、掃碼支付

<?php /** * Created by PhpStorm. * User: ljy * Date: 17/10/14 * Time: 下午3:33 */ namespace app\api\controller; use Pingpp\Pingpp; use Pingpp\Charge

支付APP支付申請配置過程詳解

第一步:你需要申請一個支付寶商家賬戶賬號,登陸之後進入產品中心,進行APP支付產品接入,填寫相關資料,等待稽核。 第二步:進行APP支付申請資訊完善 第三步:進入螞蟻金服開放平臺進行開發者認證。 第四步:認證成為開發者之後,登陸進入平臺,然後再開發者中心進入網頁&移動應用列表。

PHP支付APP支付介面

1-1:首先下載支付寶官方SDK,我的是PHP版的,起名“alipay” 1-2:配置檔案 config.php // 支付寶 'ALIPAY_CONFIG' =>[ 'app_id' =>'12345678', /

用PHP SDK做支付APP支付(下單及驗籤)

一、如下為支付寶APP支付PHP SDK DEMO地址。 二、如下為支付寶APP支 說明:此處用CI框架,若正式上線需將引數$aop->appId、$aop->rsaPrivate

java支付app支付-程式碼實現

1.我們需要在支付寶商戶平臺配置好,取到四個引數如下(這是支付寶官方配置地址):https://www.cnblogs.com/fuzongle/p/10217144.html   合作身份者ID:12345564544 支付寶賬號:[email protected] 商

java支付app支付-代碼實現

java exceptio ech 頁面 orm 設置 value cnblogs rep 1.我們需要在支付寶商戶平臺配置好,取到四個參數如下(這是支付寶官方配置地址):https://www.cnblogs.com/fuzongle/p/10217144.html

支付APP支付 顯示 系統繁忙 請稍後再試 ALI40247

PHP服務端生成地址傳給IOS端呼叫 一直顯示系統繁忙 請稍後再試 ALI40247   金鑰也正常 也按照官方說明來走。 官方的PHP端SDK是錯誤的  根本不加密biz_content 欄位   隨後百度找不到相關的資料 只有人說換成 1.0版本 也就是 移動支付