支付sdk —— 該組件為封裝了 微信,支付寶,銀聯支付

来源:https://www.cnblogs.com/Mr-stockings/archive/2018/02/02/8407295.html
-Advertisement-
Play Games

[精品] 支付組件 簡要說明該組件為封裝了 微信,支付寶,銀聯支付, 一鍵快速集成,幾行代碼即可集成 微信,支付寶,銀聯支付。 ## 示例: # 測試賬號:1、銀聯支付:提供測試使用卡號、手機號信息(此類信息僅供測試,不會發生正式交易)招商銀行借記卡:6226090000000048 手機號:181 ...


[精品]  支付組件 簡要說明
該組件為封裝了 微信,支付寶,銀聯支付, 一鍵快速集成,幾行代碼即可集成 微信,支付寶,銀聯支付。

## 示例:

 

 

 

 

 

 


# 測試賬號:
1、銀聯支付:
提供測試使用卡號、手機號信息(此類信息僅供測試,不會發生正式交易)
招商銀行借記卡:6226090000000048
手機號:18100000000
密碼:111101
簡訊驗證碼:123456(先點獲取驗證碼之後再輸入)
證件類型:01身份證
證件號:510265790128303
姓名:張三

華夏銀行貸記卡:6226388000000095
手機號:18100000000
cvn2:248
有效期:1219
簡訊驗證碼:123456(先點獲取驗證碼之後再輸入)
證件類型:01身份證
證件號:510265790128303
姓名:張三

------------------------------------

## 接入指南:
1、導入libSdk 依賴工程

2、配置 AndroidManifest文件(配置內容,請看下文,此處支持 兩種方式來配置 第三方支付 參數【①可以在AndroidManifest 對應的meta-data 配置;②支持在代碼中配置;選其一即可】)
- 2.1 拷貝assets/data.bin 文件到 項目中

3、項目中實際使用支付:具體使用看下文 ---> 調起支付 。

------
請配置正確的參數,否則支付寶和微信 會出現無法調起的情況。
----

# //配置 AndroidManifest

 1 <!-- 微信支付 begin -->
 2 <activity
 3 android:name="net.lbh.pay.PaymentActivity"
 4 android:launchMode="singleTop"
 5 android:theme="@android:style/Theme.Translucent.NoTitleBar" />
 6 
 7 <activity-alias
 8 android:name=".wxapi.WXPayEntryActivity"
 9 android:exported="true"
10 android:targetActivity="net.lbh.pay.PaymentActivity" />

 

<!-- 微信支付 end -->


<!-- 支付寶 begin -->

1 <activity
2 android:name="com.alipay.sdk.app.H5PayActivity"
3 android:configChanges="orientation|keyboardHidden|navigation"
4 android:exported="false"
5 android:screenOrientation="behind"
6 android:windowSoftInputMode="adjustResize|stateHidden" />

 


<!-- 支付寶 end -->


<!-- 銀聯支付 begin -->

 1 <activity
 2 android:name="com.unionpay.uppay.PayActivity"
 3 android:configChanges="orientation|keyboardHidden"
 4 android:excludeFromRecents="true"
 5 android:screenOrientation="portrait"
 6 android:windowSoftInputMode="adjustResize" />
 7 
 8 <activity
 9 android:name="com.unionpay.UPPayWapActivity"
10 android:configChanges="orientation|keyboardHidden"
11 android:screenOrientation="portrait"
12 android:windowSoftInputMode="adjustResize" />

 

<!-- 銀聯支付 end -->


<!-- 微信 廣播 start -->

1 <receiver android:name="net.lbh.pay.wxpay.AppRegister" >
2 <intent-filter>
3 <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
4 </intent-filter>
5 </receiver>

 


<!-- 微信 廣播 end -->


<!-- 微信支付 參數 appid, 需要替換成你自己的 -->

 1 <meta-data
 2 android:name="WXPAY_APP_ID"
 3 android:value="替換成自己的 app id" >
 4 </meta-data>
 5 <meta-data
 6 android:name="WXPAY_MCH_ID"
 7 android:value="替換成自己的 MCH_ID" >
 8 </meta-data>
 9 <meta-data
10 android:name="WXPAY_API_KEY"
11 android:value="替換成自己的 api key" >
12 </meta-data>

 


<!-- 微信支付 參數 end 需要替換成你自己的 -->


<!-- 支付寶 參數 appid, 需要替換成你自己的 --> //如果是 超過10位數字,要在前邊加 ,Eg: \0223987667567887653

 1 <meta-data
 2 android:name="ALIPAY_PARTNER_ID"
 3 android:value="替換成自己的 partenr id" >
 4 </meta-data>
 5 <meta-data
 6 android:name="ALIPAY_SELLER_ID"
 7 android:value="替換成自己的 seller id" >
 8 </meta-data>
 9 
10 <meta-data
11 android:name="ALIPAY_PRIVATE_KEY"
12 android:value="替換成自己的 private key" >
13 </meta-data>
14 
15 <meta-data
16 android:name="ALIPAY_PUBLIC_KEY"
17 android:value="替換成自己的 public key" >
18 </meta-data>

 

<!-- 支付寶 參數 end 需要替換成你自己的 -->

# // 初始化支付組件
PayAgent payAgent = PayAgent.getInstance();
payAgent.setDebug(true);

// 代碼初始化 參數, 此處針對場景,所有參數有 自己app server保管的時候,動態的支付配置下發參數
payAgent.initAliPayKeys(partnerId, sellerId, privateKey, publicKey);
payAgent.initWxPayKeys(appId, mchId, appKey)
// 初始化 銀聯支付 所需的 驗簽 參數
//payAgent.initUpPayKeys(PublicKeyPMModulus, publicExponent, PublicKeyProductModulus);
// 代碼動態初始化為 可選

## payAgent.initPay(this);

 

# // 調起支付 

 1 PayAgent.getInstance().onPay(payType, this, payInfo,
 2 new OnPayListener() {
 3 
 4 @Override
 5 public void onStartPay() {
 6 
 7 progressDialog.setTitle("載入中。。。");
 8 progressDialog.show();
 9 }
10 
11 @Override
12 public void onPaySuccess() {
13 
14 Toast.makeText(MainActivity.this,"支付成功!", 1).show();
15 
16 if (null != progressDialog) {
17 progressDialog.dismiss();
18 }
19 
20 }
21 
22 @Override
23 public void onPayFail(String code, String msg) {
24 Toast.makeText(MainActivity.this,
25 "code:" + code + "msg:" + msg, 1).show();
26 Log.e(getClass().getName(), "code:" + code + "msg:" + msg);
27 
28 if (null != progressDialog) {
29 progressDialog.dismiss();
30 }
31 }
32 });

 




#

## 支付參數說明:
PayType:
支付的支付方式,目前支持:
- 1、PayAgent.PayType.WECHATPAY(微信支付);
- 2、PayAgent.PayType.ALIPAY(支付寶);
- 3、PayAgent.PayType.UPPAY(銀聯)。

Activity:
調起支付的 Activity

PayInfo:

/** 商品名稱*/
private String subject;

/** 商品詳細信息 商品的標題/交易標題/訂單標題/訂單關鍵字等。該參數最長為128個漢字*/
private String body;

/** 商品價格*/
private String price;

/** 商品訂單號*/
private String orderNo;

/** 支付通知地址*/
private String notifyUrl;

OnPayListener:
支付監聽器:
- onStartPay() 開始支付,可以在此做 支付前準備提示
- onPaySuccess(); 支付成功
- onPayFail(String code, String msg); 支付失敗,code和msg 均為第三方原樣返回

# 配置第三方參數說明:
- 1、支付寶:
-


-----------------------------------------------------------------------------------------------------------------------------------------------
# 註意:
- 1、支付寶支付,調用支付寶時, 所有參數為必須向
- 2、微信支付,orderNo 為必須項
- 3、銀聯支付時,orderNo 為必須項
-4、關於支付後,通知回調,只有支付寶是 在客戶端手動設置,其餘都是在 後臺配置。

## 註意事項:
- 1、當測試時,可以使用Debug模式,開啟方式為:
PayAgent payAgent = PayAgent.getInstance();
payAgent.setDebug(true);

- 2、調試模式(非正式環境,目前只有 銀聯):
PayAgent payAgent = PayAgent.getInstance();
payAgent.setOnlieMode(false);


# 版本說明:

- 1、銀聯支付:3.3.2
- 2、支付寶:
- 3、微信:

# 更新日誌:
- 2016.04.15更新:
- 1、2016.4.14 銀聯更新sdk,更新銀聯支付控制項為3.3.3
- 2、去除銀聯客戶端驗簽;添加銀聯需要許可權(nfc等)

- 1、更新銀聯支付控制項為3.3.2
- 2、添加調試模式(非正式環境模式、主要正對銀聯支付)

payAgent.setOnlieMode(false);
- 3、添加銀聯 驗證簽名,初始化簽名參數
- 4、修改Demo ,測試 Demo能正常運行。

## 其他說明:

- 銀聯支付平臺官網:https://open.unionpay.com/ajweb/product/detail?id=3
- 支付寶平臺官網:https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1
- 微信支付平臺官網:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317784&token=&lang=zh_CN
- https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 現在很多服務都部署在linux環境中,但是在開發階段,使用windows遠程連接工具,直觀,這對開發人員更友好。 下麵是我在ubuntu16.04使用mysql- server時,遇到了一下的問題,以及該問題的解決方案。 1.錯誤碼 2003 ERROR 2003: Can't connect to ...
  • 在之前的文章-參數關聯中,留個一個小尾巴,這裡補充一下 http://www.cnblogs.com/Zfc-Cjk/p/8295495.html 1:從sql表中將需要取的數據查出來 2:我們需要把這個id為4451的數據從sql裡面取出來,傳到下一個sql裡面,執行刪除 3:寫一個介面的傳參有些 ...
  • 前言 由於本人是個docker控,不喜歡安裝各種環境,而且安裝redis trib也有點繁瑣,索性用docker來做redis cluster。 本文用的是偽集群,真正的集群放到不同的機器即可。埠是7001 7006。 工作目錄: 創建文件夾 首先創建一堆對應埠的文件夾,下麵是腳本 create ...
  • mongoDB是一個基於分散式文件存儲的資料庫,介於關係型資料庫和非關係型資料庫之間,在非關係型資料庫中功能最豐富, 最像關係型資料庫。數據結構鬆散,類似於json的bson格式,可以存儲比較複雜的數據類型 支持對資料庫建立索引 在ubuntu 16.04上安裝mongoDB 以下命令均在root用 ...
  • java使用Redis連接池 jar包為 jedis-2.9.0.jar+commons-pool2-2.4.2.jar jar下載地址 ...
  • 沒有安裝PDO yum install php70w-pdo yum install php70w-mysqlnd 兩條命令搞定 ...
  • mysql: dbs 資料庫系統 bdms 資料庫管理系統 bda 資料庫管理員 db 資料庫 dba通過dbms來操作db! 軟體項目開發周期中資料庫設計01.需求分析階段:分析客戶的業務和數據處理需求02.概要設計階段:設計資料庫的E-R模型圖,確認需求信息的正確和完整03.詳細設計階段:應用三 ...
  • 一般在做數據統計的時候會用到行轉列,假如要統計學生的成績,資料庫里查詢出來的會是這樣的,但這並不能達到想要的效果,所以要在查詢的時候做一下處理 CREATE TABLE TestTable( [Id] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarcha ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...