def set_params(self, **kwargs): self.params = {} for (k, v) in kwargs.items(): self.params[k] = smart_str(v) self.params['nonce_str'] = random_str(length=32) self.params.update(self.common_params)
def param_sorter(self, param_dict): keys = param_dict.keys() keys.sort() sorted_str = '' for key in keys: value = param_dict[key] sorted_str += '%s=%s&' % (key, value) sorted_str = smart_str(sorted_str[:-1]) return sorted_str
def des_encrypt(string, deskey, charset='utf-8'): key = base64.b64decode(deskey)[:8] cipher = DES.new(key) plain_text = smart_str(string) repeat = 8 - len(plain_text) % 8 plain_text += chr(repeat) * repeat encrypt_msg = cipher.encrypt(plain_text) b64_msg = base64.b64encode(encrypt_msg).encode(charset) return b64_msg
def params_filter(self, params): # 除去不需要签名的项目,并声称签名原串 self.params['merchantNum'] = self.pay_account.merchant_num self.params['version'] = ( '2.0' if settings.CB_ENCRYPTION_MODE else '1.0') keys = self.params.keys() keys.sort() self.filtered_params = {} self.prestr = '' for key in keys: value = self.params[key] if key not in ("merchantSign", "token", "version"): self.filtered_params[key] = value self.prestr += '%s=%s&' % (key, self.filtered_params[key]) self.prestr = smart_str(self.prestr[:-1])
def params_filter(self, params): # 除去不需要签名的项目,并声称签名原串 self.params['merchantNum'] = self.pay_account.merchant_num self.params['version'] = ('2.0' if settings.CB_ENCRYPTION_MODE else '1.0') keys = self.params.keys() keys.sort() self.filtered_params = {} self.prestr = '' for key in keys: value = self.params[key] if key not in ("merchantSign", "token", "version"): self.filtered_params[key] = value self.prestr += '%s=%s&' % (key, self.filtered_params[key]) self.prestr = smart_str(self.prestr[:-1])