1. 程式人生 > >Android 3分鐘整合微信支付

Android 3分鐘整合微信支付

一.長話短說,微信支付和支付寶支付一樣,分為三部曲。

  a.向伺服器傳送請求,伺服器返回訂單資訊

  b.呼叫微信請求發起支付

  c.處理回撥結果 (在WXPayEntryActivity的onResp方法中,詳見如下步驟3)

二.直接上步驟:

1.依賴:

//微信支付
compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

2.許可權:

普通許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
高危許可權: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

3.包名目錄下建立wxapi資料夾,新建WXPayEntryActivity(WXEntryActivity可不建立)。如圖:


image.png

WXPayEntryActivity程式碼如下(有個痛點,此activity一定要實現IWXAPIEventHandler介面):

public class WXPayEntryActivity
extends Activity implements IWXAPIEventHandler
{ private static final String TAG = "WXPayEntryActivity"; private IWXAPI api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, MyApplication.WXAPPID); api.handleIntent(getIntent(), this
); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) { LogUtils.d(TAG, "WXPayEntryActivity = " + req.openId); } @Override public void onResp(BaseResp resp) { LogUtils.d(TAG, "WXPayEntryActivity = " + resp.errCode); if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX){ if (resp.errCode == 0){ //支付成功 }else { Toast.makeText(this,"支付失敗,請重試",Toast.LENGTH_SHORT).show(); } finish(); } } }

4.清單檔案 即AndroidManifest.xml檔案中宣告支付所需的activity:

  <!-- 微信支付 -->
    <activity
        android:name=".wxapi.WXPayEntryActivity"
        android:exported="true"
        android:launchMode="singleTop"/>

5.向伺服器傳送請求,伺服器返回訂單資訊,發起支付。發起支付程式碼如下,以下欄位除應用ID外都為伺服器返回:

 IWXAPI wxapi = WXAPIFactory.createWXAPI(this, MyApplication.WXAPPID);  //應用ID 即微信開放平臺稽核通過的應用APPID
    wxapi.registerApp(MyApplication.WXAPPID);    //應用ID
    PayReq payReq = new PayReq();
    payReq.appId = MyApplication.WXAPPID;        //應用ID
    payReq.partnerId = bean.getPartnerId();      //商戶號 即微信支付分配的商戶號
    payReq.prepayId = bean.getPrepayId();        //預支付交易會話ID
    payReq.packageValue = bean.getPackageX();    //擴充套件欄位
    payReq.nonceStr = bean.getNonceStr();        //隨機字串不長於32位。
    payReq.timeStamp = "" + bean.getTimeStamp(); //時間戳
    payReq.sign = bean.getPaySign();             //簽名
    wxapi.sendReq(payReq);

6.處理回撥,回撥結果在WXPayEntryActivity的onResp方法中,可見步驟3

三.隨手分享,喜歡的朋友可以關注本簡書號MiHomes,後續會有更多更好的部落格推送給您。

另:歡迎指出不足,會進行更正

同步更新至簡書 https://www.jianshu.com/p/0e91135c3539

相關推薦

Android 3分鐘整合支付

一.長話短說,微信支付和支付寶支付一樣,分為三部曲。 a.向伺服器傳送請求,伺服器返回訂單資訊 b.呼叫微信請求發起支付 c.處理回撥結果 (在WXPayEntryActivity的onResp方法中,詳見如下步驟3) 二.直接上步驟:1.依賴://微信支付 c

Laravel使用EasyWechat,3分鐘完成支付

一.準備工作 1.下載微信官方PHP的SDK,裡面有個rootca.pem要用到,在php.ini裡配置curl.cainfo=你存放rootca.pem的絕對路徑,重啟PHP 2.composer整合easywechat的laravel版本,具體怎麼使用點這裡 2.1

THINKPHP 3.1.x 整合支付

導語 支付寶和微信,在目前的生態下,都得整合接入 開發前請申請認證微信公眾號,申請開通微信商戶 環境: Thinkphp 3.1.x Wxpay php sdk v3 方式: PC端掃碼支付及公眾號內JSAPI支付 1.微信支付配置 2. WXPAY php

Android應用整合支付

前言 最近的專案用到了移動支付功能,客戶要求同時支援“支付寶”和“微信支付”;個人感覺相對來說支付寶較簡單一些,以前也在Android應用中整合過,因此沒有花費過多時間便完成了。但微信支付我是第一次接觸,著實費了不少功夫,花了幾天才折騰出來,便想著寫篇日誌記一

Android整合支付

我個人將整合微信支付的過程分成4個步驟: 微信官方api文件:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1 1.配置各種資訊 2.拼湊預訂單資訊,訪問微信伺服器生成預訂單,主要是為了得

Android 整合支付步驟詳解

Android開發要點說明 整合之前的步驟不能省,下面引用官網步驟 1、後臺設定 商戶在微信開放平臺申請開發應用後,微信開放平臺會生成APP的唯一標識APPID。由於需要保證支付安全,需要在開放平臺繫結商戶應用包名和應用簽名,設定好後才能正常發起支付。設定介面在【開放平臺】

Android 3分鐘整合支付支付

一.話不多說,直接上步驟。image.png2.在app的.gradle檔案中引入此jar包//支付寶支付 compile files('libs/alipaySdk-20170922.jar') 3.清單檔案 即AndroidManifest.xml檔案中宣告支付所需的ac

Android整合支付SDK

最近接了整合android微信支付SDK的需求,感覺跟其它的SDK的接入並無太大區別,只不過有一些坑可能需要踩,前人已經踩的差不多了,本人就少踩了一些,總結一下最新的微信支付SDK的整合過程與注意事項

java實現沙箱測試環境支付支付(demo)和整合支付支付支付到ssm

mar 文件 fun Go examples IT === throws 由於 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關註我的微信公眾號:好好學java,獲取優質學習資源。 一、支付寶測試環境代碼測試 1.下載電腦網站的官方demo: 下載地址:https:

Androd整合支付支付支付

文章目錄 前言 微信支付 支付寶支付 前言 我們在做App的時候,可能需要接入支付功能,常見的支付有微信支付和支付寶支付。這裡只說明下前端的程式碼邏輯。 微信支付 微信支付開發

ThinkPHP整合支付之發現金紅包

大家好,微信支付系列教程四種方式已經結束,如果你以為結束了就錯了,有同學跟我提到微信還有紅包功能,我開始也沒注意這一塊,於是看了下微信商戶平臺上有講到這一塊,微信支付平臺上也早就有了,於是趁熱打鐵,研究了下,繼續發出關於微信紅包的教程文章。接下來請看微信支付發紅包之現金紅包教程! 現在微信商戶

ThinkPHP整合支付之刷卡模式

大家好,這篇文章是繼微信支付之Native 掃碼支付 模式二之後的微信支付系列教程第四篇:微信刷卡支付 本教程跟前三篇教程不一樣,所需要的類庫也不一樣,所以做刷卡支付的時候,與之前的方法沒多少關係,大家注意一下。 下面開始介紹詳細步驟! step1:下載微信刷卡支

小程式、app整合支付

一、微信小程式支付 申請小程式開發者賬號,進行微信認證,獲取appid,開通微信支付,即繫結申請的微信支付商戶號。 1.小程式支付流程: 2.商戶系統和微信支付系統主要互動:       1、小程式內呼叫登入介面,獲取到使用者的openid。       2

Android開發丶整合原生分享並於分享網頁時載入網路縮圖

微信分享也是一項很常用的功能了,以往都是用友盟或者mobShareSDK框架來實現的,這兩者在微信官方的sdk基礎上封裝的很好,並且加入了一些很實用性的功能,不過這次因為只有微信平臺的分享,而且微信登入也是基於微信官方的原生SDK的,所以我們就不用再去大費周章地使用友盟和mo

【最高補貼3萬】支付18年校招開始了,快發簡歷來!

騰訊2018年校園招聘即將開始,2019年畢業的同學歡迎自薦,有親朋好友明年畢業的話也歡迎推薦。 微信支付今年招聘各個崗位的優秀人才,在這裡你可以接觸最前沿的網際網路產品形態,可以學習和使用最先進的網際網路技術,可以接觸到和消費相關的各行各業。在這裡你可以和優秀的同事們一起努力,讓微信支付

ThinkPHP整合支付之JSAPI模式

目前微信是很火的,微信支付目前很少在網上能看到一系列詳細的demo,因此,花一點時間來做一下關於微信支付系列教程,本次教程是JSAPI模式支付,其他的還會繼續寫下去 首先,下載微信支付的demo,我們根據微信上的demo來整合到TP中。 介紹下我們這裡需要用到的幾個檔案:

thikphp 3.2 實現支付(jsapi支付)流程

這裡說一下微信支付(jsapi支付)流程 ,支付肯定是有訂單號的、訂單這一塊就不多說了。 第一步:點選去支付,首先你要知道你的訂單號是多少。拿著訂單號,我們來處理 ,上一下程式碼,具體看一下 //支付

ThinkPHP 整合支付 掃碼支付 模式二 圖文教程

這篇文章主要介紹掃碼支付場景二。目前有兩種模式,模式一比模式二稍微複雜點,至於模式一與模式二的具體內容,流程,微信開發文件都有詳細介紹,這裡就不多說廢話,接下來趕緊上教程!下載SDK類檔案並SDK檔案/lib下的幾個檔案放置到/ThinkPHP/Library/Vendor/

【Java】快速整合支付支付支付

本文介紹博主自己封裝的一個微信支付和支付寶支付的library 本專案解決的問題僅限於最後的支付環節,即你告訴我多少錢,我帶著這個多少錢的資訊發起微信支付或者支付寶支付,僅需簡單的配置資訊,然後

iOS 整合支付

      微信支付現在是移動支付領域一支不可忽視的力量,我們移動開發人員在開發app的時候,也不可避免的用到各種支付,支付寶支付我們用的最多了,我這裡就不講解了,我現在給大家講解一個iOS微信支付,首先 我們需要在微信開放平臺註冊商戶資訊(記住是微信開放平臺不是公眾平臺)