Android之微信支付
Android開發(fā)中,大多數(shù)電商APP都會(huì)有支付這么模塊,此博客就講一下微信支付,代碼不多,很簡(jiǎn)單就可以完成,支付寶支付請(qǐng)看博客 Android支付之支付寶封裝類
先來看看效果圖
?????????????
微信支付首先要去微信開發(fā)平臺(tái)申請(qǐng),得到相關(guān)信息,根據(jù)微信平臺(tái)文檔操作即可,如:appId? keydeng
首先導(dǎo)入libammsdk.jar 包
?
之后在項(xiàng)目包名下創(chuàng)建 wxapi 包? 如? com.zq.demo.wxapi? 前提? com.zq.demo? 包名乃是項(xiàng)目包名,不能有錯(cuò)。
包下有三個(gè)類
Constants.Java(注:當(dāng)然這個(gè)類也可以不要)
public class Constants {public static final String APP_ID = "申請(qǐng)的APPID";public static class ShowMsgActivity {public static final String STitle = "showmsg_title";public static final String SMessage = "showmsg_message";public static final String BAThumbData = "showmsg_thumb_data";} }AppRegister.java? 注冊(cè)
public class AppRegister extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);msgApi.registerApp(Constants.APP_ID);} }WXPayEntryActivity.java 支付回調(diào)
/**** 微信支付成功回調(diào)接口* @author zq**/ public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";private IWXAPI api;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.pay_result);api = WXAPIFactory.createWXAPI(this,Constants.APP_ID);api.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic 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();if(resp.errCode==0)//返回參數(shù)意思 參考文檔即可 { //支付成功 執(zhí)行相關(guān)操作}else{//支付失敗 }}finish();} }
?
調(diào)用支付
/**** 微信支付*/public void wxpaly() {PayReq request = new PayReq();request.appId =Constants.APP_ID;request.nonceStr ="iuWeKvt82vAGzxH3";request.partnerId = "1900000109";request.prepayId = "1101000000140415649af9fc314aa427",;request.packageValue = "Sign=WXPay";request.timeStamp = "支付時(shí)間";request.sign = "7FFECB600D7157C5AA49810D2D8F28BC2811827B";api.sendReq(request);}其中的參數(shù)為了安全一般是從后臺(tái)接口獲取得到的。
AndroidManifest.xml配置
<activityandroid:name="com.zq.demo.wxapi.WXPayEntryActivity"android:exported="true"android:launchMode="singleTop" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="申請(qǐng)的APPId" /></intent-filter></activity><receiver android:name="com.zq.demo.wxapi.AppRegister" ><intent-filter><action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" /></intent-filter></receiver>?
權(quán)限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />?
代碼不多,主要是細(xì)節(jié),希望對(duì)大家有所幫助。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangqie/p/6634924.html
總結(jié)
以上是生活随笔為你收集整理的Android之微信支付的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenSession与getCurre
- 下一篇: Android ContentProvi