1. 程式人生 > >最簡單的安卓接入微信支付教程,不簡單你打我!

最簡單的安卓接入微信支付教程,不簡單你打我!

    安卓接入微信支付最簡單的教程,看完不會你打我!生氣

接入微信支付呢,你首先得有個微信支付的商戶端賬戶。這個賬戶一般你公司會提供給你的,一般是財務註冊的,當然如果你們家的財務沒有註冊的話你可以教她怎麼註冊。順便泡泡妞(財務一般都是女的吧)。註冊連結點這裡 https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F,或者百度 微信支付商戶 如果你說你也不會註冊,那麼你可以點選右上角的叉叉關閉本網頁了。敲打 接下來進入正題 接入微信支付你還得申請一個微信開發者賬號(好像是要300塊錢認證費的,太久忘記了),公司一般也會提供,沒提供就繼續叫財務妹子註冊啦!
註冊連結點這裡
 https://open.weixin.qq.com,或者百度  微信開放平臺 好了,現在已經註冊了微信開發者賬號,接下來建立一個移動應用。

這兩個部分是需要注意的,包名一般你可以看你應用的Activity的第一行,像博主的就是類似com.againstsky.weixindemo(這個應該沒有不知道的吧?)

然後就是應用簽名,簡單來說就是你的簽名檔案的md5值。建議在測試階段填寫debug版本簽名檔案的md5值,方便你的除錯,在正式上線的時候再改成你正式

簽名檔案的md5(當然可以在Android studio中選擇debug的時候也用正式版的簽名檔案啦,不過這就不在本教程中說了!)

那麼問題來了,博主你說了這麼多,還是沒有說怎麼獲得這個檔案的md5值啊!罵人

好好好,你們先把刀放下來,我這就教你們。

方法1:使用微信提供的一個小app,把這個app安裝到你的手機上,接著輸入你的應用的包名就可以獲得了,這裡就不截圖了!

方法2:使用keytool命令 

keytool -list -v -keystore 你的簽名檔案的路徑

    例:

keytool -list -v -keystore mykey.jks

接著會提示你輸入簽名檔案的密碼

    獲取debug版本的命令:

keytool -list -v-keystore debug.keystore

debug版本的命令這樣子寫就可以,不用加路徑,也不會提示你輸入密碼

然後下來的一大堆東西里的MD5值就是我們需要的了。


把中間的冒號給去掉,然後填到微信的申請介面就ok了。

等待微信的稽核通過後你就能拿到一個AppID。接下來就可開始接入了。

首先在你專案的app目錄下的build檔案裡新增這行程式碼:

compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
輸入之後IDE會提示你SyncNow。sync now之後IDE會開始下載微信支付的相關sdk。
接著在你的專案的包下新建一個名為 wxapi 的包,包裡新建一個名為WXPayEntryActivity 的activity
注意名字必須和我這裡寫的一模一樣,包括大小寫。這是微信規定的,如果你不這麼寫,嘿嘿,支付回撥就不能成功調起(微信就是這麼任性)
接下來在這個activity裡寫上這些程式碼
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
    private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, SomeString.WeiXinApiId);
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) {
    }

    @Override
public void onResp(BaseResp resp) {
         if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
//重點在這裡,errcode=0的時候代表支付成功,其他情況下都代表支付失敗
            if(resp.errCode==0){
                Toast.makeText(WXPayEntryActivity.this,"支付成功",Toast.LENGTH_SHORT).show();
}else {
                Toast.makeText(WXPayEntryActivity.this,"支付失敗",Toast.LENGTH_SHORT).show();
}
}
    }
}
配置好了回撥類之後就可以寫調起支付的部分了,程式碼很簡單。
private void sendPay() {
    DeBug.loe("sendPay","true");
    final IWXAPI msgApi = WXAPIFactory.createWXAPI(this,這裡就是你剛剛獲得的那個AppID,false);
// 將該app註冊到微信
msgApi.registerApp(這裡還是你剛剛獲得的那個AppID);
PayReq request = new PayReq();
request.appId = 這裡還是你剛剛獲得的那個AppID;
request.partnerId =;//接下來的這幾個部分都是後臺傳過來的資料,如果他沒傳這些給你,啥都別說了,提刀吧
request.prepayId=;//
request.packageValue =;//
request.nonceStr=;//
request.timeStamp=;//
request.sign=;//
msgApi.sendReq(request);
finish();
}

沒錯,你沒有看錯就是這麼一個函式。在activity裡呼叫了這個函式之後,就能成功發起微信支付了。

今天的教程就到這裡,由於本人第一次寫部落格,有不足的地方還請大家多多包涵(不包涵你也不能來打我偷笑)。如果有錯誤的地方還請大神指出,博主也是一隻小白,大家共勉!

(如有轉發請備註出處,如果您看的滿意,請關注我,謝謝)