微信公众号支付及提现

时间:2022-08-31 22:41:28

微信支付,分为很多种,前端一般情况有两种,公众号支付和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、添加微信公众号菜单