微信支付,分为很多种,前端一般情况有两种,公众号支付和H5页面支付(在QQ,浏览器上),这篇文章为公众号支付,H5页面支付请看:https://blog.csdn.net/qq_34664239/article/details/79142923
官方文档:【https://pay.weixin.qq.com/wiki/doc/api/index.html】
1、微信公众号支付
1. 分钟号ID页
2. 支付页
-
微信支付细节
- 微信公众号支付,必须要服务号和商户平台统一,才能支付
- 微信h5不需要
-
当前微信用户授权登陆,提供code,后台获取openid,
关于UnionID机制
1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
-
2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
再进行下单处理
- 后台下单
- 微信内H5调起支付
-
注意
- 后台穿参数的时候,必须和前端一样,否则会影响签名
- 注意大小写
appId:"wx07e1a11a5dcc8964"
nonceStr:"JVQnPDxC0U4pVtZUojLujAk40vluBu63"
package:"prepay_id=wx20170920191347874ee0440d0154078695"
sign:"DAFA86FB5DE6A263A241810ED1C617CC"
signType:"MD5"
timeStamp:"1505906027"
packageWX:"Sign=WXPay"
orderno:"a9630c2b97eb4421a8db92bc4f878815"
<!--微信公众号支付,后台下单后调起微信支付页面-->
<!--传参-->
payrmb
type=0
tradetype=JSAPI
及其他项目相关参数
gObj.weixinData = {
"appId": gObj.appId, //公众号名称,由商户传入
"timeStamp": gObj.timeStamp, //时间戳,自1970年以来的秒数
"nonceStr": gObj.nonceStr, //随机串
"package": gObj.package,
"signType": "MD5", //微信签名方式:
"paySign": gObj.paySign //微信签名
};
function onBridgeReady() {
WeixinJSBridge.invoke(
'getBrandWCPayRequest', gObj.weixinData,
function(res) {
if(res.err_msg == "get_brand_wcpay_request:ok") {
$('.reward').hide();
$('#J_prismPlayer').show();
$(document).off('touchmove');
}
if(res.err_msg == "get_brand_wcpay_request:fail") {
$('#J_prismPlayer').show();
$(document).off('touchmove');
}
}
);
}
if(typeof WeixinJSBridge == "undefined") {
if(document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
} else if(document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
} else {
onBridgeReady();
}
2、提现
1. 手机号登陆
2. 绑定支付宝账号及设置提现密码
3. 提现
4. (及更换支付宝账号及更换提现密码)
-
提现细节
- 首先要明确,没有真正的提现,是在后台生成一条提现记录,后台去审核,再进行转账
- 手机号登陆,获取userid,存储起来
- 绑定时,将userid及支付宝账号,及提现密码传给后台进行存储
提现页,首先根据userid获取可取现金额及用户信息等,再进行提现处理
其实难点在于细节处理,比较繁琐,并不难,都是后台在处理数据
3、添加微信公众号菜单
- 支付,链接直接写为:
- https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx07e1a11a5dcc8964&redirect_uri=https%3A%2F%2Ftest.2or3m.com%2Fproject%2FaccountID.html&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
- 能直接授权拿到用户信息登录进入H5页面
- 再写入其他信息,传给后台下单,前端调起支付页面支付