six_003
This commit is contained in:
@@ -31,30 +31,30 @@ django.setup()
|
||||
|
||||
|
||||
class sixWechatPay六果泡泡支付(BaseModel):
|
||||
mchid: str = Field("1700383419", alias="商户号", description="微信支付商户号")
|
||||
appid: str = Field("wxf612e825377328f0", alias="商户号", description="微信支付商户号")
|
||||
api_v3_key: str = Field("YWMGAIPTJTWZN4YB3YUTHWK34K9U9M1W", alias="APIv3密钥", description="用于回调解密")
|
||||
api_v2_key: Optional[SecretStr] = Field("OXRNKGGUYHGNJSSIHKFGVMAAOHRPXJAT", alias="APIv2密钥", description="仅老接口需要")
|
||||
serial_no商户证书的序列号: str = Field("530160D54E8F56726F506DEE40D7FA49A558E8E0", description="商户证书的序列号")
|
||||
mchid: str = Field(default="1700383419", alias="商户号", description="微信支付商户号")
|
||||
appid: str = Field(default="wxf612e825377328f0", alias="商户号", description="微信支付商户号")
|
||||
api_v3_key: str = Field(default="YWMGAIPTJTWZN4YB3YUTHWK34K9U9M1W", alias="APIv3密钥", description="用于回调解密")
|
||||
api_v2_key: str = Field(default="OXRNKGGUYHGNJSSIHKFGVMAAOHRPXJAT", alias="APIv2密钥", description="仅老接口需要")
|
||||
serial_no商户证书的序列号: str = Field(default="530160D54E8F56726F506DEE40D7FA49A558E8E0", description="商户证书的序列号")
|
||||
# ---------- 小程序密钥 ----------
|
||||
mini_program_app_secret: SecretStr = Field("8691f774e3c0c5a876b21a3e84109ef0", alias="小程序AppSecret")
|
||||
mini_program_app_secret: SecretStr = Field(default="8691f774e3c0c5a876b21a3e84109ef0", alias="小程序AppSecret")
|
||||
|
||||
# ---------- 商户API密钥对(用于签名请求) ----------
|
||||
merchant_private_key_pem: str = Field(Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/apiclient_key.pem").read_text(), alias="商户私钥PEM", description="apiclient_key.pem 内容")
|
||||
merchant_public_key_pem: str = Field(Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/微信支付公钥.pem").read_text(), alias="商户公钥PEM", description="apiclient_cert.pem 内容(很少用到)")
|
||||
merchant_private_key_pem: str = Field(default=Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/apiclient_key.pem").read_text(), alias="商户私钥PEM", description="apiclient_key.pem 内容")
|
||||
merchant_public_key_pem: str = Field(default=Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/微信支付公钥.pem").read_text(), alias="商户公钥PEM", description="apiclient_cert.pem 内容(很少用到)")
|
||||
|
||||
# ---------- 微信支付公钥(用于验签和加密敏感字段) ----------
|
||||
wechatpay_public_key_id: str = Field("PUB_KEY_ID_0117003834192026080500181856002000", alias="微信支付公钥ID")
|
||||
wechatpay_public_key_pem: str = Field(Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/微信支付公钥.pem").read_text(), alias="微信支付公钥PEM", description="pub_key.pem 内容")
|
||||
wechatpay_public_key_id: str = Field(default="PUB_KEY_ID_0117003834192026080500181856002000", alias="微信支付公钥ID")
|
||||
wechatpay_public_key_pem: str = Field(default=Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/微信支付公钥.pem").read_text(), alias="微信支付公钥PEM", description="pub_key.pem 内容")
|
||||
# ---------- 平台证书(灰度过渡期备用) ----------
|
||||
platform_cert_pem: Optional[
|
||||
str] = Field(Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/sixgou_ping_tai_zheng_shu_cert.pem").read_text(), alias="平台证书PEM", description="wechatpay.pem 内容")
|
||||
str] = Field(default=Path(settings.BASE_DIR).joinpath("wechat_微信支付证书/江苏六果科技有限公司支付证书/sixgou_ping_tai_zheng_shu_cert.pem").read_text(), alias="平台证书PEM", description="wechatpay.pem 内容")
|
||||
pay_uri: str | None = Field(None, )
|
||||
pay_请求体: dict | bytes | str | None = Field(None, description="发请求签名时需要的请求体")
|
||||
pay_methon方法: Literal["GET", "POST", "PATCH"] = Field("POST", description="发请求签名时需要的请求体")
|
||||
pay_methon方法: Literal["GET", "POST", "PATCH"] = Field(default="POST", description="发请求签名时需要的请求体")
|
||||
|
||||
def model_post_init(self, __context):
|
||||
print("初始化完成,自动调用 model_post_init")
|
||||
pass
|
||||
|
||||
def 验证签名串(self, response_headers, response_data: dict, ):
|
||||
"""
|
||||
@@ -71,7 +71,6 @@ class sixWechatPay六果泡泡支付(BaseModel):
|
||||
Wechatpay_Signa = pydash.get(response_headers, "Wechatpay-Signature")
|
||||
response_data_str = orjson.dumps(response_data, ).decode(encoding="utf-8")
|
||||
string_to_verify = f"{Wechatpay_Timestamp}\n{Wechatpay_Nonce}\n{response_data_str}\n" # 构造验签名串
|
||||
print("最终验证的请求字符串", string_to_verify)
|
||||
hash_obj = SHA256.new(string_to_verify.encode())
|
||||
# 6. 验证签名
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user