Android微信支付步骤简述

公司的微信支付是采用了app客户端首先触发,向app服务端发送支付请求,将订单信息提交给app服务端,服务端(app服务端在此之前已经向微信支付服务端发送支付请求,微信服务端返回对应的参数)返回对应的参数给app客户端,此时客户端再向微信服务端发唯一一次请求,请求成功后,微信服务端会调用WXPayEntryActivity的onResp(BaseResp resp)方法,该Activity必须放在aaa.bbb.wxapi下面,也就是说该Activity要自己定义。

注意:1。WXPayEntryActivity必须在AndroidManifest.xml 定义;

            2。跟支付宝支付相比,微信支付必须将app打包签名后(签名必须与app申请微信支付时提交的资料的签名一致)才能进行测试;

           3。金额1是代表1分,而支付宝是代表1元。

           4。app的包名也必须是与app申请微信支付时提交的资料的包名一致.

           5。一般按照给定的demo测试是没问题,需要注意的就是2和4。


          
    IWXAPI api;
api = WXAPIFactory.createWXAPI(this, "****");//通过申请的appid


try {
// String responseBody = getRequest(url);//url为app服务端返回的字符串(包含各种参数)
//Toast.makeText(PayOrderActivity.this, "debug:"+responseBody, Toast.LENGTH_SHORT).show();
JSONObject map = new JSONObject(responseBody);
// Map<String, String> map = parseXmlStr(responseBody);
PayReq req = new PayReq();
req.appId = (String) map.get("appid");
req.partnerId = (String) map.get("partnerid");
req.prepayId = (String) map.get("prepayid");
req.nonceStr = (String) map.get("noncestr");
req.timeStamp = (String) map.get("timestamp");
req.packageValue = (String) map.get("package");
req.sign = (String) map.get("sign");
//Toast.makeText(PayOrderActivity.this, "正常调起支付", Toast.LENGTH_SHORT).show();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
boolean sendReq = api.sendReq(req);
                      //在此处 sendReq 只能作为有没有向微信支付服务端发送请求而已

//Toast.makeText(PayOrderActivity.this, "发送请求:"+sendReq, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.e("PAY_GET", "异常:" + e.getMessage());
}


package net.aaa.bbb;



public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{
	
	private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";

	public static final String PAY_SUCCESS = "PAY_SUCCESS";// 用于广播
	
    private IWXAPI api;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pay_result);
        finish();//不想显示这个页面
        
    	api = WXAPIFactory.createWXAPI(this, Constants.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 req) {
	}

	@Override
	public void onResp(BaseResp resp) {
		Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);
		
		if(resp.errCode==0){
			//写上自己支付完之后的代码
	
			
		}
		/*
		if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
			//测试回调 ldz
	
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
			builder.setTitle("提示");
			builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
			builder.show();
		}*/
	}
}


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/NavPage">
    
	<TextView
	    android:layout_width="fill_parent"
	 	android:layout_height="fill_parent"
		android:gravity="center"
	 	android:textColor="#ff000000"
	 	android:textSize="20dp"
	 	android:text="@string/pay_result_tip"/>
	
</LinearLayout>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值