在上篇文章,已经介绍了微信支付的相关申请流程:点击打开链接
下面是关于微信支付,后端代码。博主使用的是java。其他语言如:php、python、.net等可以参考思路流程
一、微信支付大概流程:
1.用户选择商品--->下单--->生成订单--->保存订单到数据库--->发起微信统一下单接口(注:小程序支付、公众号支付需要获取用户openid)--->对订单进行签名--->返回微信支付单信息--->对app端需要的字段,进行再次签名(注:APP支付、小程序支付、公众号支付,前端发起支付需要的字段不一样,详情见微信支付开发者文档)--->把签名和字段数据,返回给前端--->前端接收台返回的数据--->调起微信支付
2.用户支付完成后,微信服务器会发消息通知商家服务器,商家需要写一个接口(回调接口),以供微信发送消息,商家后台接收到微信通知后,对通知内容(xml格式),进行处理(更改订单状态或者别的相关业务)并作出响应,如果失败,微信会在24小时内,重复通知7次,时间间隔详见微信开发者文档
注意:对于微信回调内容,需要做签名校验,以防止假数据
App支付官方文档: 点击打开链接
小程序支付官方文档: 点击打开链接
公众号支付官方文档: 点击打开链接
二、微信支付开发
1.微信支付常量类
/**
* 微信支付常量
* @author fanxing
*
*/
public class WxpayConfig {
//appid
public static final String appId = "";
//app密钥
public static final String appSecret = "";
//商户id
public static final String MchId = "";
//商户密钥
public static final String Key = "";
//授权类型
public static final String GrantType = "authorization_code";
//签名类型
public static final String SignType = "MD5";
//统一下单地址
public static final String PayUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder";
//回调地址
public static final String NotifyUrl = "https://xxx.xxxx.com/xxx/app/wxpayNotify";
//证书路径根据实际情况配置
public static final String SertPach = "/home/xxx/xxx/cert/apiclient_cert.p12";
}
上面代码,变量内容,根据自己实际的appid,app密钥,以及商户信息配置
注意:回调地址,需要根据后台实际开发的回调地址配置,证书路径,根据自己服务器证书实际存放路径配置
2.工具类
待更新
注:转载请注明出处