1. 程式人生 > >android 支付寶的植入 《曾經踩過的坑》

android 支付寶的植入 《曾經踩過的坑》

最近公司有需求在專案中要植入支付寶支付等功能。 在完成植入的過程中,遇到了一些坑,今天趁趁任務不多做了個總結。分享給大家,希望以小夥伴不要陷入這些坑中以免浪費很多的時間。
首先說一下遇到的坑及其碰到的問題
1.java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag ClassCastException: com.android.org.bouncycastle.asn1.DLSequence cannot be cast to com.android.org.bouncycastle.asn1.ASN1Integer
原因:
public class SignUtils {
   private static final String ALGORITHM = "RSA";
   private static final String SIGN_ALGORITHMS = "SHA1WithRSA";
   private static final String DEFAULT_CHARSET = "UTF-8";
   public static String sign(String content, String privateKey) {
      try {
         java.security.Signature signature = java.security.Signature
               .getInstance(SIGN_ALGORITHMS);
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(PayBase64.decode(privateKey));
      KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
      PrivateKey priKey = keyf.generatePrivate(priPKCS8);
         PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(PayBase64.decode(privateKey));
         KeyFactory keyFactory = KeyFactory.getInstance("RSA", "BC");
         PrivateKey priKey = keyFactory.generatePrivate(privSpec);
         signature.initSign(priKey);
         signature.update(content.getBytes(DEFAULT_CHARSET));
         byte[] signed = signature.sign();
         return PayBase64.encode(signed);
      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }
修改之後,發現
com.android.org.bouncycastle.jcajce.provider.asymmetric.util.ExtendedInvalidKeySpecException: unable to process key spec: java.lang.ClassCastException: com.android.org.bouncycastle.asn1.DLSequence cannot be cast to com.android.org.bouncycastle.asn1.ASN1Integer
又這個錯誤,總麼辦?
最終是因為:
最終因為傳入私鑰錯誤。需要重新生成私鑰:


2.在handler裡面接受訊息的時候,PayResult 轉換失敗,原因是你在進行
呼叫支付寶介面的時候,所傳送的引數型別不一致導致的。eg:

相關推薦

android 支付植入曾經

最近公司有需求在專案中要植入支付寶支付等功能。 在完成植入的過程中,遇到了一些坑,今天趁趁任務不多做了個總結。分享給大家,希望以小夥伴不要陷入這些坑中以免浪費很多的時間。 首先說一下遇到的坑及其碰到的問題 1.java.security.spec.InvalidKeySpecException: java.l

軟件測試曾經

密碼修改 tro 一個 不知道 勝任 兩個 賬號 bsp 提示 原文鏈接:https://www.zhihu.com/question/60591301/answer/209549333 軟件測試曾經踩過的坑? 1.自以為了解業務邏輯,實際浮於表面 這是個深坑

iOS開發中曾經

  3.NSString使用stringWithFormat拼接的相關知識 保留2位小數點 //.2代表小數點後面保留2位(2代表保留的數量) NSString *string = [NSString stringWithF

Android Studio下Ndk開發以及解辦法決

 Android studio在2.2之後是開始相容ndk的開發,嚐鮮用來本地開發,各種坑,不相容。之前用得好好的,一個升級AS或者NDK版本都會一不小心導致了編譯失敗,或者成功之後,載入不成功。故隨手筆記記錄下自己踩過的坑,也方便其他人查詢。 Trap One :

Android藍芽BLE4.0

一直都負責專案的藍芽模組,期間踩過很多坑,說出來跟大家分享一下。 1. 從簡單的開始,首先是許可權的問題,在Android6.0以上,部分機型需要開啟定位許可權,部分機型需要同時開啟GPS。所以使用藍芽之前,你可以動態申請定位許可權,或者直接將targetSdkVersio

Android 支付快捷支付集成及ALI64錯誤的有效解決

pop asc i++ code orm manifest 圖片 快捷 ipa 支付寶開放平臺採用了RSA安全簽名機制,開發人員能夠通過支付寶公鑰驗證消息來源。同一時候可使用自己的私鑰對信息進行加密。RSA算法及數字簽名機制是支付寶開放平臺與開發人員網關

Android Studio 第七十九期 - Android 支付數字遞增顯示

src ati com change tree 遞增 studio bsp nbsp 代碼已經整理好,效果如下圖: 地址:https://github.com/geeklx/myapplication2018/tree/master/p023_zhif

android 支付整合 使用常見錯誤

1:自己近期在做了支付。遇到了一下問題先總結例如以下 第一條: Android快捷支付SDK Demo resultStatus={4001};memo={引數錯誤};result={}問題 分析:填寫的支付寶pkcs8編碼的私鑰 有問題。或

React Native (IOS和Android) 支付和微信支付整合實戰(支付Android篇)

序言:React Native無論是在社群和應用程度上,在國內外是十分廣泛和普及的。而支付寶和微信在支付模組上都有或多或少的支援,雖然沒有完整的Demo,不過在我做過一個相關整合的專案後,在此我把相關的步驟和方法總結出來和大家分享,希望能夠幫助大家少走彎路,快速整合。 支付

EclipseSpring外掛不顯示問題,我,分享下

網上最多的說法是版本不相容(spring外掛和eclipse),但是其實大家都不是傻子,都會看對應版本。 所以最多情況還是版本都對的情況下出現外掛不顯示等問題,下面貼出穩穩的安裝外掛和顯示方法; 1、先確定環境,比如eclipse+jdk+spring外掛, 這裡4.5版本的eclipse最好搭

Android支付微信銀聯等底部彈窗dialog(原始碼分析+例子)

Android支付寶微信銀聯等底部彈窗dialog(原始碼分析+例子) 本博文做技術分享存檔使用,涉及技術點包含動畫,自定義控制元件,三方支付SDK等,本文相對簡單直接貼相關程式碼,有不懂的請留言,博主看到會及時解答,謝謝理解.本文原始碼下載 微信支付採坑的請看這篇博文微信支

android 支付支付應用加沙箱環境測試

第一步:訪問螞蟻金服官網,登入,建立自己的應用:    官網地址:https://open.alipay.com/developmentAccess/developmentAccess.htm        點選開發者中心,選擇開發

Android 支付頭部啥的~

https://blog.kyleduo.com/2017/07/21/alipay-home-3-alipay-home/ 平滑 https://github.com/leifu1107/AlipayHome 有點那啥 但是那啥 開始實踐~   &nbs

Android支付螞蟻森林能量自動收取外掛開發原理解析

轉發一篇高技術含量的文章,原文網址為:https://www.52pojie.cn/thread-794312-1-1.html   一、前言關於支付寶的螞蟻森林能量收取這個非常有重大意義的東西,本人表示非常認同,這個網上也是一直有人覺得馬雲是一個非常有遠見的男人,的確雖然很多人覺

React Native (IOS和Android) 支付和微信支付整合實戰(微信IOS篇)

序言:React Native無論是在社群和應用程度上,在國內外是十分廣泛和普及的。而支付寶和微信在支付模組上都有或多或少的支援,雖然沒有完整的Demo,不過在我做過一個相關整合的專案後,在此我把相關的步驟和方法總結出來和大家分享,希望能夠幫助大家少走彎路,快速整合。 微信

Android 支付整合Demo

一、申請移動支付許可權 首先登入【支付寶開放平臺】http://open.alipay.com/platform/home.htm,新增應用,申請移動支付許可權。申請開通支付,是需要公司檔案的,個人是不允許開始支付的。 具體細節就不再詳聊了,下面就講講如何將阿里給出的de

實現Android支付聲波支付時的波紋檢視

我正在參加部落格之星,點選這裡投我一票吧,謝謝~   前言自從支付寶聲波支付的波紋效果出來以後,這種形式就慢慢流行開來,比如各種安全軟體在掃描時會採用這種動畫效果,這種波紋盪漾起來也是增加了動感十足呢,如圖1。                                 

Android支付 微信支付 簡單整合

最近專案需求 改版了支付方式,支付寶  微信都切換了 海外版,還集成了paypal,前幾天隨手記錄了一下paypal的整合,今天 整理一下 支付寶 和微信的,支付寶 微信 賬戶申請 應用建立就不說了,截圖太麻煩,這裡只貼 一些 關鍵程式碼片段,假設 支付寶 微信  賬號申請

支付小程式申請支付公鑰遇到的

對於支付寶還沒有繫結過手機的賬號,在小程式設定支付寶公鑰的時候會遇到以下情況 以上是我申請支付寶公鑰遇到的問題,解決方法如下: 首先開啟以下連結 1、進

程式設計師,Mybatis你嗎?

摘自:https://yq.aliyun.com/roundtable/49835?&utm_campaign=sys&utm_medium=market&utm_source=edm_email&msctype=email&msca