1. 程式人生 > >微信公眾號支付和提現

微信公眾號支付和提現

一、微信公眾號支付。

1.XXX/WechatPayController/getAuthorizeUrl?url=http://域名/專案/XXXController/toBuyCard,在controller方法裡,獲取url,重定向到

"https://open.weixin.qq.com/connect/oauth2/authorize"+"?"+"appid="+this.APPID+"&redirect_uri="+URLEncoder.encode(url,"UTF-8")+"&scope=snsapi_base";

2.在url中接收微信返回的code,利用code傳送

"https://api.weixin.qq.com/sns/oauth2/access_token"+ "appid=" + APPID + "&" + "secret=" + secret + "&code=" + code+ "&grant_type=authorization_code"

獲取openID;//返回的資料是json

3.將上面的openID傳送到前臺html頁面,通過前臺傳送請求到後臺,通過微信統一下單:引數

"nonce_str", "5K8264ILTKCH16CQ2502SI8ZNMTM67VS"
"body", "充值"
"out_trade_no", tradeNo
"fee_type", "CNY"
"total_fee", fee
"spbill_create_ip", clientIp
"notify_url", notifyUrl
"trade_type", "JSAPI"
"openid",openId

可以獲取微信返回的JSON資料

4.將資料傳送到前臺html頁面,通過jssdk,需要引入<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>,拉起微信支付,

WeixinJSBridge.invoke('getBrandWCPayRequest',{
                    "appId" : appId, //公眾號名稱,由商戶傳入
                    "timeStamp" : timeStamp, //時間戳
                    "nonceStr" : nonceStr, //隨機串
                    "package" : prepayIde,//擴充套件包
                    "signType" : "MD5",
                    "paySign" : signe //微信簽名
                  },function(res){
                      alert("res"+JSON.stringify(res));
                      alert("res.err_msg"+res.err_msg);
                     if(res.err_msg == "get_brand_wcpay_request:ok") {
                       // window.location.href="toTransactionDetail.html?orderId="+$("#pay").attr("orderId");
                         window.location.href="XXX/XXXController/wxpayBuy"; //支付成功,去本地後臺處理資料
                     }
                 });
注:1.APPID,secret,MchID,Key都需要微信公眾號開通微信支付商戶,然後部分引數配置

2.同時需要配置訪問路徑,只用到controller

二、微信公眾號提現:

1.XXX/XXXController/getAuthorizeUrl?url=http://域名/專案/XXXController/authorizeCallback,獲取code->openID,

2.通過openID  傳送提現請求:引數

"mch_appid", appid
"mchid", mch_id
"nonce_str", new Date().getTime()+MyUtil.getStr(16)
"partner_trade_no", new Date().getTime()+""
"openid", openId
"check_name", "NO_CHECK"
"amount",""+ money*100
"desc", "提現"
"re_user_name", realName
"spbill_create_ip", spbill_create_ip//"192.168.1.1",

"sign", sign//通過上面的引數MD5生成

將引數組裝成XML,傳送到"https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"

返回的"return_code"和"result_code" 均為"SUCCESS"時為成功

注:這裡提現,需要玩家的繫結微訊號的真實姓名,需要安全證書,在微信商戶平臺下載