频道栏目
首页 > 资讯 > 微信公众平台开发 > 正文

Android——微信支付

16-07-18        来源:[db:作者]  
收藏   我要投稿

写在前面的话
应用要接入微信支付,需要在微信的开发者平台上进行提交应用,并且审核通过,应用已经获取到appId和支付能力。
相关jar包下载地址:http://download.csdn.net/detail/sapce_fish/9571142
也可到官网下载:https://open.weixin.qq.com
libammsdk.jar 引进自己的项目中

第一步:在Manifest中进行如下配置:


    
    
    
    
    
    


        
        

 
第二步:写微信回调,这个需要特别注意,因为微信对这个回调类有特殊的要求

注意点:


1.位置:回调Activity的位置在包名的wxapi下。例如:包名为aaa.bbb.ccc 那么回调Activity的位置则应在aaa.bbb.ccc.wxapi下


2.Activity名:回调Activity名字必须为WXPayEntryActivity。此Activity继承自Activity,这也跟上面在Manifest文件中配置的那个Activity对应上了。


3.Activity实现IWXAPIEventHandler接口。

微信回调Activity(这个回调Activity比较容易写错,我就全部贴出来,如有需要可以参考)

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{

    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.pay_result);

        api = WXAPIFactory.createWXAPI(this, AppConstants.APP_ID_WX);
        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) {
        Log.d("space", "onPayFinish, errCode = " + resp.errCode);
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            String result = "";
            switch(resp.errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    result ="成功";
                    JsCallbackExecutor.onLutongPayResult(resp.errCode, "code is weixin sdk back ,ref status" + result);
                    Log.d("space", result);
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                    result = "取消";
                    JsCallbackExecutor.onLutongPayResult(resp.errCode, "code is weixin sdk back ,ref status" + result);
                    Log.d("space", result);
                    break;
                case BaseResp.ErrCode.ERR_COMM:
                    result = "错误";
                    JsCallbackExecutor.onLutongPayResult(resp.errCode, "code is weixin sdk back ,ref status" + result);
                    Log.d("space", result);
                    break;
                default:
                    result = "返回";
                    JsCallbackExecutor.onLutongPayResult(resp.errCode, "code is weixin sdk back ,ref status" + result);
                    Log.d("space", result);
                    break;
            }
        }
        finish();
    }
}

 


第三步:初始化微信支付
初始化微信支付

/**
     * 初始化相关支付sdk
     */
    private void initPaySdk() {
        //初始化微信支付
        mWXapi = WXAPIFactory.createWXAPI(mActivity, AppConstants.APP_ID_WX, true);
        if(!mWXapi.isWXAppInstalled())
        {
            JsCallbackExecutor.onLutongPayResult(CallbackCode.NO_INSTALL_WX, "weixin no install");
            return ;
        }
        //向微信注册当前应用
        mWXapi.registerApp(AppConstants.APP_ID_WX);
    }

 


第四步:后台生成预付单
调起支付所需参数,以及相关回调
 


 

第五步:调用微信支付

微信支付

/**
     * 微信支付
     */
    private void orderWX(String jsonParams) {
        try {
            JSONObject json = new JSONObject(jsonParams);
            Log.d("space","开始准备拉起微信支付页面");
            PayReq req = new PayReq();
            req.appId           = json.getString("appId");
            req.partnerId       = json.getString("partnerId");
            req.prepayId        = json.getString("prepayId");
            req.nonceStr        = json.getString("noncestr");
            req.timeStamp       = json.getString("timestamp");
            req.packageValue    = "Sign=WXPay";
            req.sign            = json.getString("sign");
            req.extData         = json.getString("orderId");
            mWXapi.sendReq(req);

        }catch (Exception e){
            JsCallbackExecutor.onLutongPayResult(CallbackCode.PAY_ERROR,"pay exception");
        }
    }
相关TAG标签
上一篇:简谈回顾多条件搜索查询
下一篇:JAVA 内存管理总结
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站