paySig = to_hex(hmac_sha256(appKey,method + '&' + signData))
import hmacimport hashlibimport urllib.parse# sign_data: The original payment string. Note that sign_data must be exactly the same as the parameters sent from the frontend, including spaces and line breaks. It is recommended to generate and send it from the backend.# appKey# methoddef gen_pay_sig(sign_data, appkey, method):need_encode_body = method + '&' + sign_dataprint(need_encode_body)return hmac.new(key=appkey.encode('utf-8'), msg=need_encode_body.encode('utf-8'),digestmod=hashlib.sha256).hexdigest()
pay_event_sig = to_hex(hmac_sha256(app_key, event + '&' + payload))
#!/usr/bin/python# -*- coding: utf-8 -*-""" Example of PayEventSig signature calculation algorithm """import hmacimport hashlibdef calc_pay_event_sig(event, payload, app_key):""" pay_event_sig signature algorithmArgs:event - event type, e.g., pass event when creating an orderpayload - data corresponding to the event, such as the payload in the notification message,e.g. {"OpenId":"to_user_openid","OutTradeNo":"xxxxxxx","WeChatPayInfo":{"MchOrderNo":"xxxxxxx","TransactionId":"xxxxxxx"},"Env":0,"CoinInfo":{"ZoneId":"1","TotalPrice":100,"BuyQuantity":1,"OrigPrice":100}}app_key - virtual payment key configured by superappReturns:Payment request signature pay_event_sig"""need_sign_msg = event + '&' + payloadpay_sig = hmac.new(key=appkey.encode('utf-8'), msg=need_sign_msg.encode('utf-8'),digestmod=hashlib.sha256).hexdigest()return pay_sig
Feedback