Android最新微信支付總結

簽名和包名,簽名的話:用release。

關於上線:非硬性指標。

1.申請appid
提交應用,等待審覈。只有審覈通過後,纔能有開發資格。支付認證費:300元/年。每年需要認證一次。
2.下載sdk
gradle做以下配置

dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
}

3.清單文件配置
3.1添加權限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>3.2註冊activity
<!--微信支付-->
    <activity
        android:name=".wxapi.WXPayEntryActivity"
        android:exported="true"
        android:launchMode="singleTop"/>

WXPayEntryActivity實現了IWXAPIEventHandler,重寫了onResp(BaseResp resp),是微信支付結果的回調,由微信api調用。並將接收到的intent和實現了IWXAPIEventHandler的對象傳遞給IWXAPI 的handleIntent方法。onResp是微信發送請求的回調,onReq是app發送微信請求結果的回調。

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pay_result);
 
        api = WXAPIFactory.createWXAPI(this, WXConstants.APP_ID);
 
        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) {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle(R.string.app_tip);
            builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
            builder.show();
        }
    }

注意 WXPayEntryActivity必須在包名.wxapi目錄下,否則無法被回調。WXPayEntryActivity可參考demo。
image
4.混淆配置

   #微信支付
   -keep class com.tencent.mm.opensdk.** {*;}
   -keep class com.tencent.wxop.** {*;}
   -keep class com.tencent.mm.sdk.** {*;}5.代碼 

5.1註冊api

private IWXAPI wxapi;
 
     /**
     * 註冊到微信
     * 使用支付前必須註冊,可放在activity的oncreate()中執行。
     */
    private void registerWeChatPay(){
 
        wxapi = WXAPIFactory.createWXAPI(mContext, WXConstants.APP_ID,false);
        wxapi.registerApp(WXConstants.APP_ID);
    }

5.2支付
流程:
app將訂單信息提交給後臺服務器後,服務器生成預支付交易單。app提取支付需要的參數,調用微信支付接口進行支付。支付結果由微信回調返回。
image
關鍵代碼

        PayReq request = new PayReq();
 
        request.appId = "wxd930ea5d5a258f4f";
 
        request.partnerId = "1900000109";
 
        request.prepayId= "1101000000140415649af9fc314aa427";
 
        request.packageValue = "Sign=WXPay";
 
        request.nonceStr= "1101000000140429eb40476f8896f4c9";
 
        request.timeStamp= "1398746574";
 
        request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
 
        wxapi.sendReq(request);6.總結 

支付流程同支付寶支付。不得不說,在申請支付功能上比較耗時,沒有在線客服。所有問題基本是靠電話溝通。很不方便。
支付很簡單,不多說了。
android最新微信支付總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章