日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信支付-公众平台

發(fā)布時(shí)間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信支付-公众平台 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

頁面按鈕顯示:

<!--支付確認(rèn)按鈕--><article class="btn-group"><a href="javascript:void(0);" click='wx_pay()' class="btn btn-w100 f28">下一步</a></article>

點(diǎn)擊支付:

var wx_pay = function(){var ordernum=$("#hid_ordernum").val();var ip=$("#hid_ip").val();var ra=$('input:radio[name="pay-type"]:checked').val();if(ra=="weixin"){var open_id = "{{open_id}}";if(open_id.length <= 0 ){//如果用戶還沒有微信給的open_id 就去獲取一個(gè) 這個(gè)是靜默授權(quán)獲取$.get("/wechat/weixin_snsapi_base/"+ordernum,{},function(data){window.location.href = data.wx_redirect_url;})}else{$.ajax({type: "POST",url: "/wechat/unified_order",data: {'ordernum':ordernum,"ip":ip},success:function (data) {if(data["code"]=="SUCCESS"){//調(diào)起微信支付onBridgeReady(data["dict"]);}else{$("#div_box_message").html(data['msg']);$("#div_show_box").show();};}});}}else {$("#div_box_message").html("請(qǐng)選擇你支付方式!");$("#div_show_box").show();return false;}}

支付的首先調(diào)用微信統(tǒng)一下單接口,微信那邊創(chuàng)建預(yù)支付訂單:

@wechat.route('/unified_order', methods=['POST']) def unified_order():'''統(tǒng)一下單接口 price, time_start, time_out,artwork_id'''ip = request.form.get("ip") if request.form.get("ip") else webutil.request_ip()ordernum = request.form.get("ordernum")if not ordernum:return jsonify({"code": -1})open_id = webutil.session_get_user_open_id(ordernum)# print '1----', open_id# if not open_id:# # 用戶沒有微信授權(quán)先授權(quán)獲取open_id# url = open_weixin_snsapi_base(ordernum, ip)# return redirect(url)# print '2----', open_id# print '3----', open_id# print '4----', open_idorder = Orders.query.filter_by(ordernum=ordernum).first()price = order.order_pricetime_start = order.created_ontime_out = order.created_onartwork_id = order.artwork_idres = _unified_order(ordernum, price, ip, time_start,time_out, artwork_id, open_id)# 組裝返回值code = "FAIL"msg = res['return_msg']dict = {}if res["return_code"] == "SUCCESS" and res['result_code'] == "SUCCESS":dict['appId'] = res['appid']dict['timeStamp'] = '{}'.format(int(time.time()))dict['nonceStr'] = uuid.uuid4().hexdict['package'] = "prepay_id=%s" % res['prepay_id']dict['signType'] = "MD5"dict['paySign'] = __get_sign(dict)code = "SUCCESS"elif res["return_code"] == "SUCCESS":msg = res['err_code_des']print dictreturn jsonify({"code": code, "msg": msg, "dict": dict}) def _unified_order(ordernum, price, ip, time_start, time_out,artwork_id, openid):"""統(tǒng)一下單接口公眾賬號(hào)ID appid 是 String(32) wxd678efh567hg6787 微信支付分配的公眾賬號(hào)ID(企業(yè)號(hào)corpid即為此appId)商戶號(hào) mch_id 是 String(32) 1230000109 微信支付分配的商戶號(hào)設(shè)備號(hào) device_info 否 String(32) 013467007045764 自定義參數(shù),可以為終端設(shè)備號(hào)(門店號(hào)或收銀設(shè)備ID),PC網(wǎng)頁或公眾號(hào)內(nèi)支付可以傳"WEB"隨機(jī)字符串 nonce_str 是 String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 隨機(jī)字符串,長度要求在32位以內(nèi)。推薦隨機(jī)數(shù)生成算法簽名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 通過簽名算法計(jì)算得出的簽名值,詳見簽名生成算法簽名類型 sign_type 否 String(32) HMAC-SHA256 簽名類型,默認(rèn)為MD5,支持HMAC-SHA256和MD5。商品描述 body 是 String(128) 騰訊充值中心-QQ會(huì)員充值 商品簡單描述,該字段請(qǐng)按照規(guī)范傳遞,具體請(qǐng)見參數(shù)規(guī)定商品詳情 detail 否 String(6000)附加數(shù)據(jù) attach 否 String(127) 深圳分店 附加數(shù)據(jù),在查詢API和支付通知中原樣返回,可作為自定義參數(shù)使用。商戶訂單號(hào) out_trade_no 是 String(32) 20150806125346 商戶系統(tǒng)內(nèi)部訂單號(hào),要求32個(gè)字符內(nèi)、且在同一個(gè)商戶號(hào)下唯一。 詳見商戶訂單號(hào)標(biāo)價(jià)幣種 fee_type 否 String(16) CNY 符合ISO 4217標(biāo)準(zhǔn)的三位字母代碼,默認(rèn)人民幣:CNY,詳細(xì)列表請(qǐng)參見貨幣類型標(biāo)價(jià)金額 total_fee 是 Int 88 訂單總金額,單位為分,詳見支付金額終端IP spbill_create_ip 是 String(16) 123.12.12.123 APP和網(wǎng)頁支付提交用戶端ip,Native支付填調(diào)用微信支付API的機(jī)器IP。交易起始時(shí)間 time_start 否 String(14) 20091225091010 訂單生成時(shí)間,格式為yyyyMMddHHmmss,如2009年12月25日9點(diǎn)10分10秒表示為20091225091010。其他詳見時(shí)間規(guī)則交易結(jié)束時(shí)間 time_expire 否 String(14) 20091227091010訂單失效時(shí)間,格式為yyyyMMddHHmmss,如2009年12月27日9點(diǎn)10分10秒表示為20091227091010。其他詳見時(shí)間規(guī)則注意:最短失效時(shí)間間隔必須大于5分鐘商品標(biāo)記 goods_tag 否 String(32) WXG 商品標(biāo)記,使用代金券或立減優(yōu)惠功能時(shí)需要的參數(shù),說明詳見代金券或立減優(yōu)惠通知地址 notify_url 是 String(256) http://www.weixin.qq.com/wxpay/pay.php 異步接收微信支付結(jié)果通知的回調(diào)地址,通知url必須為外網(wǎng)可訪問的url,不能攜帶參數(shù)。交易類型 trade_type 是 String(16) JSAPI 取值如下:JSAPI,NATIVE,APP等,說明詳見參數(shù)規(guī)定商品ID product_id 否 String(32) 12235413214070356458058 trade_type=NATIVE時(shí)(即掃碼支付),此參數(shù)必傳。此參數(shù)為二維碼中包含的商品ID,商戶自行定義。指定支付方式 limit_pay 否 String(32) no_credit 上傳此參數(shù)no_credit--可限制用戶不能使用信用卡支付用戶標(biāo)識(shí) openid 否 String(128) oUpF8uMuAJO_M2pxb1Q9zNjWeS6o trade_type=JSAPI時(shí)(即公眾號(hào)支付),此參數(shù)必傳,此參數(shù)為微信用戶在商戶對(duì)應(yīng)appid下的唯一標(biāo)識(shí)。openid如何獲取,可參考【獲取openid】。企業(yè)號(hào)請(qǐng)使用【企業(yè)號(hào)OAuth2.0接口】獲取企業(yè)號(hào)內(nèi)成員userid,再調(diào)用【企業(yè)號(hào)userid轉(zhuǎn)openid接口】進(jìn)行轉(zhuǎn)換'device_info': 'WEB',"sign_type": "MD5","""return_url = os.path.join("http://", DOMAIN_NAME, "wechat/wx_notify")dict = {'appid': appid, 'mch_id': "1435556302","nonce_str": uuid.uuid4().hex,"body": "詩藝-藝術(shù)品","out_trade_no": ordernum, "total_fee": int(price * 100),"spbill_create_ip": ip, "notify_url": return_url,"trade_type": "JSAPI","openid": openid}# if time_out and time_start:# dict["time_start"] = time_start# dict["time_out"] = time_start + timedelta(minutes=30)if artwork_id:dict["product_id"] = artwork_id# 生成簽名dict['sign'] = __get_sign(dict)print dict, '-----'# dict轉(zhuǎn)換為xml格式xml = __json_to_xml(dict)url = "https://api.mch.weixin.qq.com/pay/unifiedorder"req = urllib2.Request(url=url, headers={'Content-Type': 'text/xml'}, data=str(xml))f = urllib2.urlopen(req)res = f.read()res = __xml_to_json(res)return res.get("xml")

統(tǒng)一下單完成之后調(diào)起微信支付:

//jsapi微信支付function onBridgeReady(data){WeixinJSBridge.invoke('getBrandWCPayRequest', data,function(res){if(res.err_msg == "get_brand_wcpay_request:ok") {
             //跳轉(zhuǎn)到支付成功界面window.location.href="/order/pay_finish";} // 使用以上方式判斷前端返回,微信團(tuán)隊(duì)鄭重提示:res.err_msg將在用戶支付成功后返回 ok,但并不保證它絕對(duì)可靠。else{//alert(res.err_msg);}});}

  

微信支付就完成了,基本會(huì)成功,但是這里說不保證絕對(duì)可靠,所以需要調(diào)用微信另一個(gè)用來查詢訂單支付是否成功接口。

?

轉(zhuǎn)載于:https://www.cnblogs.com/2014-02-17/p/6936805.html

總結(jié)

以上是生活随笔為你收集整理的微信支付-公众平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91在线观看成人 | 狠狠干性视频 | 亚洲av无码乱码国产精品fc2 | 免费www xxx | 国产精品一区二区久久国产 | 黑丝美女啪啪 | 成人超碰在线 | 国产又粗又猛又爽又黄无遮挡 | 国产馆av | 天天宗合 | 久久精品视频一区二区三区 | 亚洲av无码一区二区三区人 | 影音先锋伦理片 | 色人阁在线视频 | 国产高清在线观看 | 91免费视频 | 夜夜操av| 大度亲吻原声视频在线观看 | 成人午夜精品一区二区三区 | 国产乱码一区二区三区播放 | 日韩电影一二三区 | 美日韩精品一区二区 | 午夜一二三区 | 国内毛片视频 | 999精品一区 | 污污污www精品国产网站 | 久久精品免费一区二区 | 中文字幕理论片 | 777黄色| 国产成年人视频网站 | 亚洲乱淫 | 久久综合操 | 亚洲国产精品久久久久 | 狠狠v欧美v日韩v亚洲ⅴ | 成人试看120秒体验区 | 欧美啪啪网 | 亚洲AV无码成人精品国产一区 | 亚洲欧美激情精品一区二区 | 国产色视频在线 | 伊人狠狠操 | 一区二区三区不卡视频在线观看 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 亚洲日本欧美精品 | 亚洲熟女乱色一区二区三区久久久 | 国产精品影音先锋 | 中文字幕+乱码+中文字幕明步 | 我要看免费的毛片 | 国产激情对白 | 日韩激情床戏 | 人人妻人人玩人人澡人人爽 | 日韩黄色免费网站 | 久久你懂的 | 国产tv在线观看 | 青青草原在线免费观看视频 | 国产美女主播在线观看 | 美女扒开让男人桶爽 | 夜色综合 | 国产66页| 韩日激情视频 | 国产精品久久久午夜夜伦鲁鲁 | 美国做爰xxxⅹ性视频 | 国产精品激情 | 国产一区二区三区免费播放 | 精品人妻少妇嫩草av无码 | 中文字幕2021 | 国产精品99精品无码视亚 | 天堂网2018 | 成人黄色在线免费观看 | 日韩视频福利 | 看免费黄色大片 | wwwwww色 | 黄色大片免费看 | 啊v视频在线 | 女人和拘做爰正片视频 | 免费在线看黄的网站 | 亚洲av无码一区二区二三区 | 精品国产亚洲av麻豆 | av乱码| 中文字幕23 | 久久99热人妻偷产国产 | 久久国产电影 | 久久久久久爱 | 精品一级少妇久久久久久久 | av综合久久 | 在线se| 亚洲影视一区二区三区 | 国产一区二区三区久久 | 一区二区三区免费 | 亚洲欧美日韩中文字幕在线观看 | 九九热视频在线免费观看 | av资源网址 | 日本性网站 | 热九九精品 | 国产视频91在线 | 夜夜夜久久久 | 娇喘顶撞深初h1v1 | 亚洲一区自拍偷拍 | av久色 | 午夜色婷婷|