一:首先是申请微信支付的一系列号

这个方面不是太懂.具体申请流程不清楚.但是里边跟客户端有关联的是appid.还有包名和签名.

签名要确定使用公司签名,包名要提前设定好名字. 你写的程序包名和打包签名必须和申请是一致.否则就出现直接跳到回调结果页并返回-1;

注意:包名和签名是可以申请改的,但是生效会等一段时间.一般一个小时之内吧.






二:调用支付接口

客户端常用的方式是所有支付接口需要的数据都由服务器返回,不需要自己做任何处理.

1.调用支付接口一共需要7个参数,而且要先注册app到微信


//注册
IWXAPI msgApi = WXAPIFactory.createWXAPI(this, "wxaa07d565fae73295");
msgApi.registerApp("wxaa07d565fae73295");


//支付
PayReq request = new PayReq();
request.appId = "wxaa07d565fae73295";//写死 应用APPID


request.partnerId = "1321746201";//写死 微信支付商户号


request.prepayId= prepayid;//预支付交易会话ID


request.packageValue = "Sign=WXPay";//微信固定值  扩展字段


request.nonceStr= noncestr;//随机字符串


request.timeStamp= timestamp;//时间戳


request.sign= sign;//签名


msgApi.sendReq(request);



2.然后是回调界面

参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),

在WXPayEntryActivity类中实现onResp 函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,

判断返回错误码,如果支付成功则去后台查询支付结果再展示用户 实际支付结果。注意一定不能以客户端返回作为用户支付的结果,

应以服务器端的接收的支付通知或查询API返回的结果为准


public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{

private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";

    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pay_result);
        
    api = WXAPIFactory.createWXAPI(this, "wxaa07d565fae73295");
        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.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("回调结果");
builder.setMessage(String.valueOf(resp.errCode));
builder.show();
}
}
}




注意这里的回调activity最好是辅助官方demo,然后做删除,修改.否则有可能出现能打开回调界面,但是没有返回值得情况 

3.添加微信jar包.(这其实是第一步,之前忘了说)

4.修改清单文件.按照官方Demo修改.

5.对于官方demo的解释.


custom debug keystore中选