[精品] 支付組件 簡要說明該組件為封裝了 微信,支付寶,銀聯支付, 一鍵快速集成,幾行代碼即可集成 微信,支付寶,銀聯支付。 ## 示例: # 測試賬號: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