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 for calculating PayEventSig signature """import hmacimport hashlibdef calc_pay_event_sig(event, payload, app_key):""" pay_event_sig signature algorithmArgs:event - event type create order incoming eventpayload - Event payload, 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 - AppKey configured in the 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