参照官方最新文档,需要注意的一些地方。
- 使用MD5 加密方式,字符串需要用UTF-8 编码。
- 参与签名的参数名称需要以字典顺序排序。
- 安卓方面,结果接收需要在 你项目的包名.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(); } }
-
还以为要跟它建个一样的包。难道是我读书少吗?
-
坑爹,文档写得太不详细了,支付结果通知没有告诉我是以什么方式返回的,结果是放在流里面。这玩意儿测试太麻烦了,外网是在阿里云上。
DataInputStream in = new DataInputStream(request.getInputStream()); byte[] dataOrigin = new byte[request.getContentLength()]; in.readFully(dataOrigin); // 根据长度,读入所有数据 in.close(); // 关闭数据流 String entity = new String(dataOrigin);
6. 目前通常的做法是需要一个调起支付页面,一个结果展示页面,如果只需要一个的话,可以将调起支付的操作放在结果展示的页面中。相应的结果展示根据返回码来进行相关的操作即可。