1.WXEntryActivity 类
public class WXEntryActivity extends Activity implements IWXAPIEventHandler { private static final String WECHAT_APPID = "我的appid" ; private IWXAPI api; @Override protected void onCreate( @Nullable Bundle savedInstanceState) { super .onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI( this , WECHAT_APPID); api.handleIntent(getIntent(), this ); } @Override protected void onNewIntent(Intent intent) { super .onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this ); } @Override public void onReq(BaseReq baseReq) { Toast.makeText( this , "onReq 1500" , Toast.LENGTH_SHORT).show(); } @Override public void onResp(BaseResp baseResp) { ToastUtils.showShort( " 微信支付返回码" +baseResp.errCode); LogUtils.d( "1923 返回码" + baseResp.errCode); if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) { AlertDialog.Builder builder = new AlertDialog.Builder( this ); builder.setTitle( "支付结果" ); builder.setMessage(String.valueOf(baseResp.errCode)); builder.show(); } } } |
2.支付代码:
private void wechatPay(WechatPayBean bean) { String appid = bean.getAppid(); //appid String mch_id = bean.getMch_id(); //商户号 String prepay_id = bean.getPrepay_id(); //预支付交易会话ID String nonce_str = bean.getNonce_str(); //随机字符串 String time_stamp = bean.getTime_stamp(); //时间戳 // String sign = bean.getSign();//签名 IWXAPI api = WXAPIFactory.createWXAPI(OrderConfirmActivity. this , appid, false ); //填写自己的APPIDapi.registerApp("wxAPPID");//填写自己的APPID,注册本身 api.registerApp(appid); PayReq req = new PayReq(); //PayReq就是订单信息对象 req.appId = appid; //你的微信appid req.partnerId = mch_id; //商户号 req.prepayId = prepay_id; //预支付交易会话ID req.nonceStr = nonce_str; //随机字符串 req.timeStamp = time_stamp; //时间戳 req.packageValue = "Sign=WXPay" ; //扩展字段,这里固定填写Sign=WXPay //todo:sign必须由appId等六个值拼接而成 req.sign = bean.getSign(); //签名 api.sendReq(req); //将订单信息对象发送给微信服务器,即发送支付请求 req.timeStamp)); // req.sign = getSign(list);//签名 } |
3.清单文件注册:
<activity android:name= ".wxapi.WXEntryActivity" android:label= "@string/app_name" android:theme= "@android:style/Theme.Translucent.NoTitleBar" android:exported= "true" android:taskAffinity= "我的包名" android:launchMode= "singleTask" > </activity> |
我也是支付成功但是没有回调。。。怎么办呢?
楼主解决了吗,遇到相同问题,一直未找打原因
失败是没有回调的,只有支付成功才会有。
https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_2&index=2
可以先自己验证一下