微信扫码支付简介

1 、微信扫码支付申请

    微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。

申请步骤:(了解)

第一步:注册公众号(类型须为:服务号)
请根据营业执照类型选择以下主体注册:个体工商户| 企业/公司| 政府| 媒体| 其他类型。
第二步:认证公众号
公众号认证后才可申请微信支付,认证费:300元/次。
第三步:提交资料申请微信支付
登录公众平台,点击左侧菜单【微信支付】,开始填写资料等待审核,审核时间为1-5个工作日内。
第四步:开户成功,登录商户平台进行验证
资料审核通过后,请登录联系人邮箱查收商户号和密码,并登录商户平台填写财付通备付金打的小额资金数额,完成账户验证。
第五步:在线签署协议
本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效。

2、开发文档

 微信支付接口调用的整体思路:
        按API要求组装参数,以XML方式发送(POST)给微信支付接口(URL),微信支付接口也是以XML方式给予响应。程序根据返回的结果(其中包括支付URL)生成二维码或判断订单状态。
    在线微信支付开发文档:https://pay.weixin.qq.com/wiki/doc/api/index.html
    1.appid:微信公众账号或开放平台APP的唯一标识
    2.mch_id:商户号  (配置文件中的partner)
    3.partnerkey:商户密钥
    4.sign:数字签名, 根据微信官方提供的密钥和一套算法生成的一个加密信息, 就是为了保证交易的安全性

3、微信支付SDK

    微信支付提供了SDK,下载后打开源码,install到本地仓库

    

    使用微信支付SDK,在maven工程中引入依赖

	<dependency>
		<groupId>com.github.wxpay</groupId>
		<artifactId>wxpay-sdk</artifactId>
		<version>0.0.3</version>
	</dependency>

我们主要会用到微信支付SDK的以下功能:

(1)获取随机字符串     

WXPayUtil.generateNonceStr()

(2)MAP转换为XML字符串(自动添加签名)

 WXPayUtil.generateSignedXml(param, partnerkey)

(3)XML字符串转换为MAP    

WXPayUtil.xmlToMap(result)

4、HttpClient工具类

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。
    HttpClient通俗的讲就是模拟了浏览器的行为,如果我们需要在后端向某一地址提交数据获取结果,就可以使用HttpClient.
    关于HttpClient(原生)具体的使用不属于我们本章的学习内容,我们这里这里为了简化HttpClient的使用,提供了工具类HttpClient(对原生HttpClient进行了封装)。
    HttpClient工具类使用的步骤:
HttpClient client=new HttpClient(请求的url地址);
client.setHttps(true);//是否是https协议
client.setXmlParam(xmlParam);//发送的xml数据
client.post();//执行post请求
String result = client.getContent(); //获取结果
5、工程搭建与准备工作

(1)建立支付服务接口模块newbie-pay-interface  (jar)
(2)建立支付服务实现模块newbie-pay-service (war) 依赖newbie-pay-interface 和newbie-common 、 spring  dubbox 相关依赖 、微信SDK  (因为不需要连接数据库所以不用引用dao工程)
	<dependency>
		<groupId>com.github.wxpay</groupId>
		<artifactId>wxpay-sdk</artifactId>
		<version>0.0.3</version>
	</dependency>
    添加tomcat插件,运行端口为9000
    添加spring配置文件 ,参见其它服务工程 
(3)在newbie-common工程中添加工具类HttpClient.java ,并添加依赖
	  	<dependency>
	  		<groupId>org.apache.httpcomponents</groupId>
	  		<artifactId>httpclient</artifactId>	  		
	  	</dependency>

    添加配置文件weixinpay.properties    

appid=wx8397f8696b538317
partner=1473426802
partnerkey=8A627A4578ACE384017C997F12D68B23
notifyurl=http://a31ef7db.ngrok.io/WeChatPay/WeChatPayNotify
    appid: 微信公众账号或开放平台APP的唯一标识
    partner:财付通平台的商户账号
    partnerkey:财付通平台的商户密钥
    notifyurl:  回调地址





猜你喜欢

转载自blog.csdn.net/qq_31784189/article/details/80940093