微信支付 公眾平台

2022-08-27 15:15:10 字數 3890 閱讀 5025

頁面按鈕顯示:

下一步

點選支付:

var wx_pay  = function()}";

if(open_id.length <= 0 ),function(data))

}else,

success:function (data) else;

}});

}}else

}

@wechat.route('/unified_order', methods=['post'])

def unified_order():

'''統一下單介面 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()

open_id = webutil.session_get_user_open_id(ordernum)

# print '1----', open_id

# if not open_id:

# url = open_weixin_snsapi_base(ordernum, ip)

# return redirect(url)

# print '2----', open_id

# print '3----', open_id

# print '4----', open_id

order = orders.query.filter_by(ordernum=ordernum).first()

price = order.order_price

time_start = order.created_on

time_out = order.created_on

artwork_id = order.artwork_id

res = _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['timestamp'] = '{}'.format(int(time.time()))

dict['noncestr'] = uuid.uuid4().hex

dict['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 dict

return jsonify()

def _unified_order(ordernum, price, ip, time_start, time_out,

artwork_id, openid):

"""統一下單介面

隨機字串 nonce_str 是 string(32) 5k8264iltkch16cq2502si8znmtm67vs 隨機字串,長度要求在32位以內。推薦隨機數生成演算法

簽名 sign 是 string(32) c380bec2bfd727a4b6845133519f3ad6 通過簽名演算法計算得出的簽名值,詳見簽名生成演算法

簽名型別 sign_type 否 string(32) hmac-sha256 簽名型別,預設為md5,支援hmac-sha256和md5。

商品詳情 detail 否 string(6000)

附加資料 attach 否 string(127) 深圳分店 附加資料,在查詢api和支付通知中原樣返回,可作為自定義引數使用。

商戶訂單號 out_trade_no 是 string(32) 20150806125346 商戶系統內部訂單號,要求32個字元內、且在同乙個商戶號下唯一。 詳見商戶訂單號

標價幣種 fee_type 否 string(16) cny 符合iso 4217標準的三位字母**,預設人民幣:cny,詳細列表請參見貨幣型別

標價金額 total_fee 是 int 88 訂單總金額,單位為分,詳見支付金額

交易起始時間 time_start 否 string(14) 20091225091010 訂單生成時間,格式為yyyymmddhhmmss,如2023年12月25日9點10分10秒表示為20091225091010。其他詳見時間規則

交易結束時間 time_expire 否 string(14) 20091227091010

訂單失效時間,格式為yyyymmddhhmmss,如2023年12月27日9點10分10秒表示為20091227091010。其他詳見時間規則

注意:最短失效時間間隔必須大於5分鐘

商品標記 goods_tag 否 string(32) wxg 商品標記,使用代金券或立減優惠功能時需要的引數,說明詳見代金券或立減優惠

商品id product_id 否 string(32) 12235413214070356458058 trade_type=native時(即掃碼支付),此引數必傳。此引數為***中包含的商品id,商戶自行定義。

指定支付方式 limit_pay 否 string(32) no_credit 上傳此引數no_credit--可限制使用者不能使用信用卡支付

# 生成簽名

dict['sign'] = __get_sign(dict)

print dict, '-----'

# dict轉換為xml格式

xml = __json_to_xml(dict)

url = ""

req = urllib2.request(

url=url, headers=, data=str(xml))

f = urllib2.urlopen(req)

res = f.read()

res = __xml_to_json(res)

return res.get("xml")

function onbridgeready(data)});

}

微信公眾平台註冊

可以看到右上角有 第一次使用公眾平台?立即註冊 點選 立即註冊 進入基本資訊介面 進入到郵箱啟用介面。登入郵箱後,可以收到啟用郵件 點選鏈結啟用賬號。成功啟用後自動跳轉到資訊登記介面。選擇運營主體及型別。並且按要求填寫完整相應的資料。進入選擇型別介面。企業和組織一般選擇服務號。及個人一般選擇訂閱號。...

微信公眾平台開發(一) 接入微信公眾平台

一 接入流程分析參考官方文件 參考文件接入概述分別由以下幾部分完成 1 填寫伺服器配置 2 驗證伺服器位址的有效性 3 依據介面文件實現業務邏輯 按照流程第一部是先填寫伺服器配置,但是我們通常都是先做第二步 編寫 驗證伺服器位址的有效性 controller的寫法 restcontroller pu...

(一)驗證微信公眾平台

第一步,進入驗證頁面 提交到伺服器上的報文為 這時候,需要將你的token,timestamp,和nonce三個字串的值,按照字母排序進行拼接,然後進行sha1,所得出的結果,應該與signature一致,最後,將echostr返回給伺服器。廢話少說了,上 function validatetoke...