日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 支付宝和微信支付封装,Android支付宝和微信支付集成

發布時間:2024/10/8 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 支付宝和微信支付封装,Android支付宝和微信支付集成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

隨著移動支付的興起,在我們的app'中,會經常有集成支付的需求.這時候一般都會采用微信和支付寶的sdk 來集成

(一)支付寶支付

在使用支付寶支付的過程中,我們是在服務器端生成訂單,客戶端訪問接口,并得到訂單信息,調用接口支付,支付成功后支付寶會分別 異步調用服務器端,并向客戶端返回支付結果.

開發步驟:

①注冊支付寶賬號——進行實名認證——提交審核資料——審核通過

支付寶無線快捷支付接口:

b.alipay.com/order/productDetail.htm?productId=2014110308141993&tabId=4#ps-tabinfo-hash

ps: 申請要上傳你的apk和產品說明文檔,產品截圖、接口使用場景、資費說明等,審核通過后會得到PID和秘鑰。

開發者可以通過支付寶公鑰驗證消息來源,同時可使用自己的私鑰對信息進行加密。

② 下載官方Sdk Demo里面包含文檔.該Demo中需要將審核通過后獲取的PID替換,并且輸入支付寶收款賬戶和用戶私鑰. 運行demo,查看sdk調用方式,

PID對應的密鑰一共有三種加密方式,分別是MD5、RSA、DSA。Java開發者需要將密鑰轉換成PKCS8格式,并將公鑰上傳到支付寶.生成方式見文檔.[支付寶開放平臺]

③ 導入項目,客戶端調用,.首先將支付寶demo中的jar包導入到項目中,可以參照,demo中拼接參數

支付寶demo類導入

//方法名稱:payTask.pay

//方法原型:

PayTask payTask = new PayTask(activity); String result = payTask.pay(orderInfo);

//方法功能:提供給商戶訂單支付功能。

請求參數以鍵值對的形式拼裝到一個String中,參數具體說明詳見官方文檔.

④ 修改Manifest,添加com.alipay.sdk.app.H5PayActivity和uses-permission,并在proguard-project.txt中添加相關的混淆規則即可.

ps: 簽名注意事項:

在請求參數列表中,除去sign、sign_type兩個參數外,其他需要使用到的參數皆是要簽名的參數

sign值要做utf-8 URLencode。

⑤回調處理,詳見 支付寶同步通知參數說明.out_trade_no可以作為唯一標志和服務器端進行交互,

當支付寶同步 通知后,客戶端通過out_trade_no詢問服務器端是否支付成功,因為真正的成功標志是需要服務器端來驗證的.

public AliPayResultS(String result) {

if (TextUtils.isEmpty(result))

return;

String[] resultParams = result.split("&");

for (String resultParam : resultParams) {

if (resultParam.startsWith("out_trade_no")) {

out_trade_no = gatValue(resultParam, "out_trade_no");

}

}

}

(二)微信支付

同樣,有了支付寶支付,呢么微信支付也不可缺少,微信支付和支付寶支付流程,大體相同,通過服務器端獲取訂單信息返回給客戶端,客戶端調用sdk進行支付,支付完成后進行同步和異步回調.

微信開放平臺Android接入指南:

open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN

①獲取appId

同樣需要獲取appid,登記并選擇移動應用進行設置后,將該應用提交審核,只有審核通過并獲取appId的應用才能進行開發。

②下載Android 微信支付demo.

我們所需要關注的依舊是PayActivity.使用微信的登陸和支付,大家都知道,需要在項目下新建一個wxapi文件夾來實現回調.

③項目集成,首先我們需要將libammsdk.jar導入到lib目錄下,這個是核心jar包.同時修改Manifest

android:name=".wxapi.WXPayEntryActivity"

android:exported="true"

android:launchMode="singleTop"/>

④接口調用.

首先我們需要初始化一個IWXAPI api,并注冊到應用,

api.registerApp(Constants.APP_ID);

PayReq req = new PayReq();

//....拼接req參數

api.sendReq(req);// 調用支付

⑤支付回調.

在支付回調類WXPayEntryActivity的onResp(BaseResp resp)方法中我們可以得到 客戶端 和服務器 唯一標志prepayid參數,來實現支付成功的后續處理.

// 支付成功

if (resp instanceof com.tencent.mm.sdk.modelpay.PayResp) {

com.tencent.mm.sdk.modelpay.PayResp payResp = (PayResp) resp;

String prepayId = payResp.prepayId;

ps: 微信支付中需要注意的是支付回調方法.支付回調必須在項目中創建一個wxapi目錄,并命名為WXPayEntryActivity(包名或類名不一致會造成無法回調),回調方法中獲取prepayId.

// 第三方應用發送到微信的請求處理后的響應結果,會回調到該方法

@Override

public void onResp(BaseResp baseResp) {

// String result = "";

switch (baseResp.errCode) {

case BaseResp.ErrCode.ERR_OK:

// result = "發送成功";

{

Intent intent = new Intent(Constants.payAction);

intent.putExtra(Constants.prepayId, ((PayResp) baseResp).prepayId);

mLocalBroadcastManager.sendBroadcast(intent);

}

break;

case BaseResp.ErrCode.ERR_USER_CANCEL:

// result = "發送取消";

break;

case BaseResp.ErrCode.ERR_AUTH_DENIED:

// result = "發送被拒絕";

break;

default:

// result = "發送返回";

break;

}

finish();

}

總之,三方支付官方文檔寫的都非常詳細,就是需要細心處理細節和注意參數,微信支付不能使用debug的,因為要驗證簽名等.否則支付不成功.

完整demo:https://github.com/BoBoMEe/ThirdPay

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的android 支付宝和微信支付封装,Android支付宝和微信支付集成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。