微信支付步骤
private IWXAPI api;
复制代码
api = WXAPIFactory.createWXAPI(this, Constant.WX_APP_ID);
api.registerApp(Constant.WX_APP_ID);
复制代码
mWXPay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "发起支付", Toast.LENGTH_SHORT).show();
PayReq req = new PayReq();
//req.appId = "wxf8b4f85f3a794e77"; // 测试用appId
req.appId = appId;
req.partnerId = "partnerId";
req.prepayId = prepayId;
req.nonceStr = nonceStr;
req.timeStamp = timeStamp;
req.packageValue = "Sign=WXPay";
req.sign = sign;
//req.extData = "app data"; // optional
Toast.makeText(MainActivity.this, "正常调起支付", Toast.LENGTH_SHORT).show();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);
}
});
复制代码
4.获取回调activity
package 应用包名.wxapi;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import cn.zhiup.mobile.Constant;
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler
{
private IWXAPI api;
public static final String wxPayAction = "wx_pay_success";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, Constant.WX_APP_ID);
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq arg0) {}
@Override
public void onResp(BaseResp arg0) {
if (arg0.getType() == ConstantsAPI.COMMAND_PAY_BY_WX)
{
if(arg0.errCode == 0){
Intent intent = new Intent();
intent.setAction(wxPayAction);
sendBroadcast(intent);
Toast.makeText(this,"微信支付成功",Toast.LENGTH_LONG).show();
}else if(arg0.errCode == -1){
Toast.makeText(this,"微信支付失败"+arg0.errStr+arg0.transaction+arg0.openId,Toast.LENGTH_LONG).show();
}else if(arg0.errCode == -2){
Toast.makeText(this,"微信支付取消",Toast.LENGTH_LONG).show();
}
}
// WXPayEntryActivity.this.finish();
}
}
复制代码