Android实现微信支付纪录篇

本文介绍了如何在Android应用中实现微信支付,包括在微信开放平台注册获取商户号、APP_ID和APP_KEY,以及集成过程中的核心代码和参数配置。详细阐述了从获取必要的支付参数到设置应用签名,再到执行支付预订单生成的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.第一步去微信开放平台注册账号,填写相关资料提交审核,审核之后将获得商户账号,MIC_CH(商户号)和APP_KEY(APP秘钥)这两个参数要在资料审核通过之后获得,审核通过后会以邮件的方式把商户号好登录密码发送到你的邮箱里;APP_ID在微信开放平台创建应用之后的时候获得,支付功能有这三个参数足以。

注意:商户登录点击下图所示入口,别搞错了


2.开始集成准备工作:

(1)APP_ID获得方式:

在微信开放平台创建应用时获取。

(2)MCH_ID获取方式(如图):


(3)APP_KEY获取方式(在账户中心,api安全项设置,如图):



自己生成然后把秘钥设置到商户平台,生成秘钥工具:http://pan.baidu.com/s/1c2xIz5Y  

(4)微信开放平台管理中心\应用详情最下面需要填上本应用的签名,签名生成工具:http://pan.baidu.com/s/1gfgHvqF  (安装到手机输入包名即可,前提手机要装有你们开发的APP)。

3.经过以上步骤资源方面基本准备完成,下面是核心代码,即我们要作修改的代码:

(1)在文件名为Constants.java的文件里写入以上三个参数,如图:


(2)支付核心函数(仅此三个我们需要用到的):

//生成prepay_id

GetPrepayIdTask getPrepayId = new GetPrepayIdTask();
				getPrepayId.execute();

//生成支付参数包括签名参数
genPayReq();

//调起微信支付
sendPayReq();
(3)以上就是我们需要调用的函数,下面提供一段需要修改的代码,如修改价格和支付成功回调地址,最后面有完整的项目地址:(把参数填入即可进行支付)

private String genProductArgs() {
		StringBuffer xml = new StringBuffer();
		try {
			String nonceStr = genNonceStr();
			xml.append("</xml>");
            List<NameValuePair> packageParams = new LinkedList<NameValuePair>();
			//微信开放平台审核通过的应用APPID
			packageParams.add(new BasicNameValuePair("appid", Constants.APP_ID));
			//商品描述,参数目前不能写中文,不知道为啥
			packageParams.add(new BasicNameValuePair("body", "weixin"));
			//微信支付分配的商户号
			packageParams.add(new BasicNameValuePair("mch_id", Constants.MCH_ID));
			//随机字符串,这里可以传用户昵称或者用户id之类的,很重要,参数可以传到回调地址那里的,也就是你们的后台那边在接收支付结果的时候,可以接到此参数
			packageParams.add(new BasicNameValuePair("nonce_str", nonceStr));
			//通知后台充值成功
			packageParams.add(new BasicNameValuePair("notify_url", "http://121.40.35.3/test"));
			//商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号,自己生成
			packageParams.add(new BasicNameValuePair("out_trade_no",genOutTradNo()));
			//用户端实际ip
			packageParams.add(new BasicNameValuePair("spbill_create_ip","127.0.0.1"));
			//订单总金额,单位为分,详见支付金额
			packageParams.add(new BasicNameValuePair("total_fee", "1"));
			//支付类型,参考值:App支付
			packageParams.add(new BasicNameValuePair("trade_type", "APP"));
			//签名
			String sign = genPackageSign(packageParams);
			//
			packageParams.add(new BasicNameValuePair("sign", sign));
			//打包成xml格式
		   String xmlstring =toXml(packageParams);

			return xmlstring;

		} catch (Exception e) {
			return null;
		}
		

	}

流程如下:

选好价格点击开通会员之后执行的步骤

(1)获得支付的价格

(2)获得Appid,mch_id,App_key

(3)执行如下代码,生成prepay_id,即生成预支付订单

GetPrepayIdTask getPrepayId = new GetPrepayIdTask();
				getPrepayId.execute();
(4)执行如下代码,生成支付参数,价格之类的

genPayReq();

(5)唤起支付,到此完成,很简单吧

sendPayReq();

项目地址:http://pan.baidu.com/s/1mhPCoZI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值