diff --git a/order_retry/demo.html b/order_retry/demo.html new file mode 100644 index 0000000..7480838 --- /dev/null +++ b/order_retry/demo.html @@ -0,0 +1 @@ +{"code":1,"message":"接收成功"} \ No newline at end of file diff --git a/order_retry/xiangyun.ipynb b/order_retry/xiangyun.ipynb new file mode 100644 index 0000000..7d2816d --- /dev/null +++ b/order_retry/xiangyun.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import hashlib\n", + "import uuid" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "amount=100&cardNumber=1234567890&cardPassword=1234567890&customerId=1¬ify_url=https://www.baidu.com&orderId=46ed12dfc21949d2b158702fde69344d&productCode=20&Key=1234567812345678\n" + ] + } + ], + "source": [ + "# string\tcustomerId\t是\t商户ID\n", + "# string\torderId\t是\t商户订单编号不大于50位长度\n", + "# string\tproductCode\t是\t点卡名称代码,参照本页【充值卡支持类型】\n", + "# string\tcardNumber\t是\t充值卡卡号,需使用3des加密后参与签名\n", + "# string\tcardPassword\t是\t充值卡密码,需使用3des加密后参与签名\n", + "# Number\tamount\t是\t提交面值\n", + "# string\tnotify_url\t是\t异步回掉接口\n", + "# string\tmcode\t否\t此参数为面值代码,如提交会员卡时需填写此参数\n", + "# String\tcustom\t否\t自定义参数原因返回\n", + "# string\tsign\t是\t参照下面说明进行MD5签名\n", + "\n", + "data = {\n", + " \"customerId\": \"1\",\n", + " \"orderId\": uuid.uuid4().hex,\n", + " \"productCode\": \"20\",\n", + " \"cardNumber\": \"1234567890\",\n", + " \"cardPassword\": \"1234567890\",\n", + " \"amount\": 100,\n", + " \"notify_url\": \"https://www.baidu.com\",\n", + " # \"sign\": \"1234567890\"\n", + "}\n", + "\n", + "# sign加密\n", + "keys = sorted(data.keys())\n", + "sign = \"\"\n", + "for k in keys:\n", + " sign += f\"{k}={data[k]}&\"\n", + "sign = sign[:-1]\n", + "sign += \"&Key=1234567812345678\"\n", + "print(sign)\n", + "data[\"sign\"] = hashlib.md5(sign.encode()).hexdigest()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\"code\":1,\"message\":\"接收成功\"}\n" + ] + } + ], + "source": [ + "import requests\n", + "\n", + "with open(\"demo.html\", \"w\", encoding='utf-8') as f:\n", + " text = requests.post(\"http://127.0.0.1/api.php/tocard\", data=data).text\n", + " print(text)\n", + " f.write(text)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'customerId': '1',\n", + " 'orderId': '1234567890',\n", + " 'productCode': '1234567890',\n", + " 'cardNumber': '1234567890',\n", + " 'cardPassword': '1234567890',\n", + " 'amount': 100,\n", + " 'notify_url': 'https://www.baidu.com',\n", + " 'sign': 'efa4f9294db0e5af4e1b848af590ad22'}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "amount=100&cardNumber=1234567890&cardPassword=1234567890&customerId=1¬ify_url=https://www.baidu.com&orderId=1234567890&productCode=1234567890&Key=1234567812345678\n", + "amount=100&cardNumber=1234567890&cardPassword=1234567890&customerId=1¬ify_url=https://www.baidu.com&orderId=1234567890&productCode=1234567890&key=1234567812345678" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/verification/build/verification_linux_x86 b/verification/build/verification_linux_x86 index a4ad12a..159fcf1 100644 Binary files a/verification/build/verification_linux_x86 and b/verification/build/verification_linux_x86 differ