处理请求,将 requests 的返回包装为 PayJSResult :param raw_response: requests 的返回值 :return: 一个 PayJSResult 元素(Success 或 Fail)
(self, raw_response: requests.Response)
| 69 | return self.parse_response(r) |
| 70 | |
| 71 | def parse_response(self, raw_response: requests.Response): |
| 72 | """ |
| 73 | 处理请求,将 requests 的返回包装为 PayJSResult |
| 74 | :param raw_response: requests 的返回值 |
| 75 | :return: 一个 PayJSResult 元素(Success 或 Fail) |
| 76 | """ |
| 77 | if raw_response.status_code == 200: |
| 78 | # 扫码支付 与 订单查询;收银台支付失败 |
| 79 | try: |
| 80 | j = json.loads(raw_response.content) |
| 81 | except json.JSONDecodeError: |
| 82 | return PayJSResultFail(raw_response=raw_response, r_json=False) |
| 83 | except UnicodeDecodeError: |
| 84 | return PayJSResultFail(raw_response=raw_response, r_json=False) |
| 85 | |
| 86 | try: |
| 87 | check_signature(self.key, j) |
| 88 | except InvalidSignatureException: |
| 89 | response = PayJSResultFail(raw_response=raw_response, r_json=j) |
| 90 | response.error_msg = '返回的签名错误' |
| 91 | |
| 92 | if str(j.get('return_code')) == '0': # 请求失败 |
| 93 | response = PayJSResultFail(raw_response=raw_response, r_json=j) |
| 94 | else: |
| 95 | response = PayJSResultSuccess(raw_response=raw_response, r_json=j) |
| 96 | |
| 97 | elif raw_response.status_code == 302: |
| 98 | # 收银台支付 |
| 99 | return PayJSResultSuccess(raw_response=raw_response, r_json=None) |
| 100 | else: |
| 101 | response = PayJSResultFail(raw_response=raw_response, r_json=False) |
| 102 | return response |
| 103 | |
| 104 | def check_status_by_payjs_order_id(self, payjs_order_id=None): |
| 105 | """ |
no test coverage detected