Android微信支付客户端开发概要

来源:互联网 发布:天刀真武男性捏脸数据 编辑:程序博客网 时间:2024/06/09 04:49

1.参数设置:

APP ID:应用APP ID,邮件里面有的;


MCH ID:微信支付商户号,同样邮件里面有的;


APP KEY:邮件里面没有的,需要去商户平台设置(https://pay.weixin.qq.com,登录账户和密码邮件里面有的,有个API安全,自行设置就可),32位字符串,可以使用一个key进行MD5就是32位字符串了,要记住,因为在商户平台无法查看;


APP SECRET:可以在微信开放平台设置https://open.weixin.qq.com,在应用列表,点击查看,进入查看界面,跟APP ID在一起的,好基友啊!


包签名:在微信开放平台设置https://open.weixin.qq.com,包名为AndroidManifest.xml文件中的package的值,签名apk,到官网下载去;


2.下载微信官网Demo,并改成使用自己的参数,能使Demo运行起来,能够出现微信支付界面,此为第一步,回调URL随便就可,后续再处理。

注意:包名和包签名,最好改成实际项目的包名;


用到的以下下参数:

APP ID

MCH ID

APP KEY


3.官网demo能正常运行起来后,将demo的代码搬到自己的项目中去,这个根据每个项目实际情况处理了,看个人能力了。


4.回调URL,服务端代码,可以参考:http://blog.csdn.net/jianfengwen/article/details/47783257,不唠叨鸟。


注意:回调URL,一定要是在公网可以访问的,不要本地URL。


5.别漏了,客户端有个微信支付结果WXPayEntryActivity,这个Activiy放在的包名是有要求的,其包名一般是用作签名的包名+“.wxapi"

参考:


import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import com.tencent.mm.sdk.constants.ConstantsAPI;import com.tencent.mm.sdk.modelbase.BaseReq;import com.tencent.mm.sdk.modelbase.BaseResp;import com.tencent.mm.sdk.openapi.IWXAPI;import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;import com.tencent.mm.sdk.openapi.WXAPIFactory;public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{private static final String TAG = "WXPayEntryActivity";    private IWXAPI api;    private TextView result;    private TextView orderBtn;    private boolean success = false;    @Override    protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);        //界面layoutsetContentView(R.layout.wxpay_result);                result = (TextView) findViewById(R.id.wxpay_result);orderBtn = (TextView) findViewById(R.id.order_list_btn);    api = WXAPIFactory.createWXAPI(this, Constant.APP_ID);        api.handleIntent(getIntent(), this);                orderBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {}});                    }    @Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);        api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic void onResp(BaseResp resp) {Logger.i(TAG, "onPayFinish, errCode = " + resp.errCode);if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {if(BaseResp.ErrCode.ERR_OK==resp.errCode){//成功result.setText("支付成功");success = true;}else if(BaseResp.ErrCode.ERR_USER_CANCEL == resp.errCode){result.setText("取消支付");success = false;}else{result.setText("支付失败");success = false;}}}}



完了



0 0