微信支付

参照官方最新文档,需要注意的一些地方。


  1. 使用MD5 加密方式,字符串需要用UTF-8 编码。
  2. 参与签名的参数名称需要以字典顺序排序。
  3. 安卓方面,结果接收需要在 你项目的包名.wxapi.WXPayEntryActivity 这个类中,该类需要实现 IWXAPIEventHandler接口 中onResp 方法。
    @Override
    	public void onResp(BaseResp resp) {
    		Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);
    
    		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, resp.errStr +";code=" + String.valueOf(resp.errCode)));
    			builder.show();
    		} }
  4. 还以为要跟它建个一样的包。难道是我读书少吗?


坑爹,文档写得太不详细了,支付结果通知没有告诉我是以什么方式返回的,结果是放在流里面。这玩意儿测试太麻烦了,外网是在阿里云上。

DataInputStream in = new DataInputStream(request.getInputStream());
            byte[] dataOrigin = new byte[request.getContentLength()];
            in.readFully(dataOrigin); // 根据长度,读入所有数据
            in.close(); // 关闭数据流
       String     entity = new String(dataOrigin); 

      6.  目前通常的做法是需要一个调起支付页面,一个结果展示页面,如果只需要一个的话,可以将调起支付的操作放在结果展示的页面中。相应的结果展示根据返回码来进行相关的操作即可。


你可能感兴趣的:(微信支付)