记一次帮哥们搭自动api续费网站的经历
先贴仓库 github:
jiujiu_server
还是哥们有生意头脑,能想到转卖海外的一些工具,打一个信息差。但是人工处理大量订单很累,就琢磨我能不能搞一个自动化的东西出来。
zfb开通支付权限
产品中心
如互联网平台直付通
先贴仓库 github:
jiujiu_server
还是哥们有生意头脑,能想到转卖海外的一些工具,打一个信息差。但是人工处理大量订单很累,就琢磨我能不能搞一个自动化的东西出来。
zfb开通支付权限
产品中心
如互联网平台直付通
这个需要商户权限,好麻烦,交给哥们去注册资质了
wordpress所需插件
Pasted_image_20240926001357.png
使用WooCommerce插件启用商场功能
使用Wenprise Alipay Payment Gateway For
WooCommerce插件启用支付宝
为了避免购物车,使用插件WooCommerce Direct
Checkout跳过购物车功能 ![Pasted_image_20240926002512.png]()
为了实现页面处输入key的功能,使用插件Checkout Field Editor
for WooCommerce
要让用户在 WooCommerce 购买商品时输入 Key 码,并在交易完成后将 Key
码传递给后端 Flask 服务器完成续费,您可以按以下步骤操作。
步骤 1:添加 Key
码输入框到结账页面
首先,需要在 WooCommerce 结账页面添加一个自定义的输入字段用于输入 Key
码。通过修改 WordPress 的 functions.php
文件来实现这个输入框。
代码步骤:
- 在 WordPress 后台,进入 外观 ->
主题文件编辑器。
- 打开
functions.php 文件。
- 添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| add_action( 'woocommerce_after_order_notes', 'add_key_code_field_to_checkout' ); function add_key_code_field_to_checkout( $checkout ) { echo '<div id="key_code_field"><h3>' . __('请输入您的 Key 码') . '</h3>'; woocommerce_form_field( 'key_code', array( 'type' => 'text', 'class' => array('key-code form-row-wide'), 'label' => __('Key 码'), 'placeholder' => __('请输入您的 Key 码'), 'required' => true, ), $checkout->get_value( 'key_code' )); echo '</div>'; }
add_action( 'woocommerce_checkout_process', 'validate_key_code' ); function validate_key_code() { if ( ! $_POST['key_code'] ) { wc_add_notice( __( '请填写 Key 码以完成购买.' ), 'error' ); } }
add_action( 'woocommerce_checkout_update_order_meta', 'save_key_code_to_order_meta' ); function save_key_code_to_order_meta( $order_id ) { if ( ! empty( $_POST['key_code'] ) ) { update_post_meta( $order_id, 'key_code', sanitize_text_field( $_POST['key_code'] ) ); } }
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_key_code_in_admin_order_meta', 10, 1 ); function display_key_code_in_admin_order_meta( $order ) { $key_code = get_post_meta( $order->get_id(), 'key_code', true ); if ( $key_code ) { echo '<p><strong>' . __('Key 码') . ':</strong> ' . $key_code . '</p>'; } }
|
去除不必要的按键
外观-> 自定义 -> 额外CSS 1 2 3 4 5 6 7 8 9 10
| .ct-woo-card-actions { display: none !important; }
.single_add_to_cart_button[name="add-to-cart"] { display: none !important; } .quantity[data-type="type-2"] { display: none; }
|
订单完成后向后端服务器发起请求,执行一些自动化操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
add_action( 'woocommerce_order_status_completed', 'send_api_key_to_flask' ); function send_api_key_to_flask( $order_id ) { $order = wc_get_order( $order_id );
$api_key = get_post_meta( $order_id, 'api_key', true );
if ( $api_key ) { $api_url = 'http://1.94.120.213/api/query'; $body = json_encode(array( 'key' => $api_key, 'order_id' => $order_id, ));
$response = wp_remote_post( $api_url, array( 'method' => 'POST', 'body' => $body, 'headers' => array( 'Content-Type' => 'application/json', ), ));
if ( is_wp_error( $response ) ) { error_log( 'Flask API 请求失败: ' . $response->get_error_message() ); } else { $response_code = wp_remote_retrieve_response_code( $response ); $response_body = wp_remote_retrieve_body( $response ); if ( $response_code == 200 ) { error_log( 'API key 续费成功: ' . $api_key ); } else { error_log( 'Flask API 响应错误: ' . $response_body ); } } } }
|
白名单设置
1 2 3 4 5 6 7 8
| WHITELIST_IPS = ['192.168.1.100', '203.0.113.1']
@app.before_request def limit_remote_addr(): client_ip = request.remote_addr if client_ip not in WHITELIST_IPS: abort(403)
|
后端自动化操作
因为我完全没写过网络相关的东西,只是简单用python
flask做了一个简易后端,详见github:
jiujiu_server
然后用无头chrome通过selenium自动化操作去目标网站点点点,实现自动化操作。
最后
其实大部分代码可能都不是我写的,而是我告诉AI需求,让他给我实现
虽然经常不work,但是只需凭借最基本的编程知识就可以定位和debug,然后交给AI修改。
虽然总的还是搞了累计可能得有10个小时
但是如果没有AI的话我大概一开始就会放弃吧哈哈哈哈哈哈
这个需要商户权限,好麻烦,交给哥们去注册资质了
wordpress所需插件
先贴仓库 github:
jiujiu_server
还是哥们有生意头脑,能想到转卖海外的一些工具,打一个信息差。但是人工处理大量订单很累,就琢磨我能不能搞一个自动化的东西出来。
zfb开通支付权限
产品中心
如互联网平台直付通
这个需要商户权限,好麻烦,交给哥们去注册资质了
wordpress所需插件
Pasted_image_20240926001357.png
使用WooCommerce插件启用商场功能
使用Wenprise Alipay Payment Gateway For
WooCommerce插件启用支付宝
为了避免购物车,使用插件WooCommerce Direct
Checkout跳过购物车功能 ![Pasted_image_20240926002512.png]()
为了实现页面处输入key的功能,使用插件Checkout Field Editor
for WooCommerce
要让用户在 WooCommerce 购买商品时输入 Key 码,并在交易完成后将 Key
码传递给后端 Flask 服务器完成续费,您可以按以下步骤操作。
步骤 1:添加 Key
码输入框到结账页面
首先,需要在 WooCommerce 结账页面添加一个自定义的输入字段用于输入 Key
码。通过修改 WordPress 的 functions.php
文件来实现这个输入框。
代码步骤:
- 在 WordPress 后台,进入 外观 ->
主题文件编辑器。
- 打开
functions.php 文件。
- 添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| add_action( 'woocommerce_after_order_notes', 'add_key_code_field_to_checkout' ); function add_key_code_field_to_checkout( $checkout ) { echo '<div id="key_code_field"><h3>' . __('请输入您的 Key 码') . '</h3>'; woocommerce_form_field( 'key_code', array( 'type' => 'text', 'class' => array('key-code form-row-wide'), 'label' => __('Key 码'), 'placeholder' => __('请输入您的 Key 码'), 'required' => true, ), $checkout->get_value( 'key_code' )); echo '</div>'; }
add_action( 'woocommerce_checkout_process', 'validate_key_code' ); function validate_key_code() { if ( ! $_POST['key_code'] ) { wc_add_notice( __( '请填写 Key 码以完成购买.' ), 'error' ); } }
add_action( 'woocommerce_checkout_update_order_meta', 'save_key_code_to_order_meta' ); function save_key_code_to_order_meta( $order_id ) { if ( ! empty( $_POST['key_code'] ) ) { update_post_meta( $order_id, 'key_code', sanitize_text_field( $_POST['key_code'] ) ); } }
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_key_code_in_admin_order_meta', 10, 1 ); function display_key_code_in_admin_order_meta( $order ) { $key_code = get_post_meta( $order->get_id(), 'key_code', true ); if ( $key_code ) { echo '<p><strong>' . __('Key 码') . ':</strong> ' . $key_code . '</p>'; } }
|
去除不必要的按键
外观-> 自定义 -> 额外CSS 1 2 3 4 5 6 7 8 9 10
| .ct-woo-card-actions { display: none !important; }
.single_add_to_cart_button[name="add-to-cart"] { display: none !important; } .quantity[data-type="type-2"] { display: none; }
|
订单完成后向后端服务器发起请求,执行一些自动化操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
add_action( 'woocommerce_order_status_completed', 'send_api_key_to_flask' ); function send_api_key_to_flask( $order_id ) { $order = wc_get_order( $order_id );
$api_key = get_post_meta( $order_id, 'api_key', true );
if ( $api_key ) { $api_url = 'http://1.94.120.213/api/query'; $body = json_encode(array( 'key' => $api_key, 'order_id' => $order_id, ));
$response = wp_remote_post( $api_url, array( 'method' => 'POST', 'body' => $body, 'headers' => array( 'Content-Type' => 'application/json', ), ));
if ( is_wp_error( $response ) ) { error_log( 'Flask API 请求失败: ' . $response->get_error_message() ); } else { $response_code = wp_remote_retrieve_response_code( $response ); $response_body = wp_remote_retrieve_body( $response ); if ( $response_code == 200 ) { error_log( 'API key 续费成功: ' . $api_key ); } else { error_log( 'Flask API 响应错误: ' . $response_body ); } } } }
|
白名单设置
1 2 3 4 5 6 7 8
| WHITELIST_IPS = ['192.168.1.100', '203.0.113.1']
@app.before_request def limit_remote_addr(): client_ip = request.remote_addr if client_ip not in WHITELIST_IPS: abort(403)
|
后端自动化操作
因为我完全没写过网络相关的东西,只是简单用python
flask做了一个简易后端,详见github:
jiujiu_server
然后用无头chrome通过selenium自动化操作去目标网站点点点,实现自动化操作。
最后
其实大部分代码可能都不是我写的,而是我告诉AI需求,让他给我实现
虽然经常不work,但是只需凭借最基本的编程知识就可以定位和debug,然后交给AI修改。
虽然总的还是搞了累计可能得有10个小时
但是如果没有AI的话我大概一开始就会放弃吧哈哈哈哈哈哈
使用WooCommerce插件启用商场功能
使用Wenprise Alipay Payment Gateway For
WooCommerce插件启用支付宝
为了避免购物车,使用插件WooCommerce Direct
Checkout跳过购物车功能
先贴仓库 github:
jiujiu_server
还是哥们有生意头脑,能想到转卖海外的一些工具,打一个信息差。但是人工处理大量订单很累,就琢磨我能不能搞一个自动化的东西出来。
zfb开通支付权限
产品中心
如互联网平台直付通
这个需要商户权限,好麻烦,交给哥们去注册资质了
wordpress所需插件
Pasted_image_20240926001357.png
使用WooCommerce插件启用商场功能
使用Wenprise Alipay Payment Gateway For
WooCommerce插件启用支付宝
为了避免购物车,使用插件WooCommerce Direct
Checkout跳过购物车功能 ![Pasted_image_20240926002512.png]()
为了实现页面处输入key的功能,使用插件Checkout Field Editor
for WooCommerce
要让用户在 WooCommerce 购买商品时输入 Key 码,并在交易完成后将 Key
码传递给后端 Flask 服务器完成续费,您可以按以下步骤操作。
步骤 1:添加 Key
码输入框到结账页面
首先,需要在 WooCommerce 结账页面添加一个自定义的输入字段用于输入 Key
码。通过修改 WordPress 的 functions.php
文件来实现这个输入框。
代码步骤:
- 在 WordPress 后台,进入 外观 ->
主题文件编辑器。
- 打开
functions.php 文件。
- 添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| add_action( 'woocommerce_after_order_notes', 'add_key_code_field_to_checkout' ); function add_key_code_field_to_checkout( $checkout ) { echo '<div id="key_code_field"><h3>' . __('请输入您的 Key 码') . '</h3>'; woocommerce_form_field( 'key_code', array( 'type' => 'text', 'class' => array('key-code form-row-wide'), 'label' => __('Key 码'), 'placeholder' => __('请输入您的 Key 码'), 'required' => true, ), $checkout->get_value( 'key_code' )); echo '</div>'; }
add_action( 'woocommerce_checkout_process', 'validate_key_code' ); function validate_key_code() { if ( ! $_POST['key_code'] ) { wc_add_notice( __( '请填写 Key 码以完成购买.' ), 'error' ); } }
add_action( 'woocommerce_checkout_update_order_meta', 'save_key_code_to_order_meta' ); function save_key_code_to_order_meta( $order_id ) { if ( ! empty( $_POST['key_code'] ) ) { update_post_meta( $order_id, 'key_code', sanitize_text_field( $_POST['key_code'] ) ); } }
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_key_code_in_admin_order_meta', 10, 1 ); function display_key_code_in_admin_order_meta( $order ) { $key_code = get_post_meta( $order->get_id(), 'key_code', true ); if ( $key_code ) { echo '<p><strong>' . __('Key 码') . ':</strong> ' . $key_code . '</p>'; } }
|
去除不必要的按键
外观-> 自定义 -> 额外CSS 1 2 3 4 5 6 7 8 9 10
| .ct-woo-card-actions { display: none !important; }
.single_add_to_cart_button[name="add-to-cart"] { display: none !important; } .quantity[data-type="type-2"] { display: none; }
|
订单完成后向后端服务器发起请求,执行一些自动化操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
add_action( 'woocommerce_order_status_completed', 'send_api_key_to_flask' ); function send_api_key_to_flask( $order_id ) { $order = wc_get_order( $order_id );
$api_key = get_post_meta( $order_id, 'api_key', true );
if ( $api_key ) { $api_url = 'http://1.94.120.213/api/query'; $body = json_encode(array( 'key' => $api_key, 'order_id' => $order_id, ));
$response = wp_remote_post( $api_url, array( 'method' => 'POST', 'body' => $body, 'headers' => array( 'Content-Type' => 'application/json', ), ));
if ( is_wp_error( $response ) ) { error_log( 'Flask API 请求失败: ' . $response->get_error_message() ); } else { $response_code = wp_remote_retrieve_response_code( $response ); $response_body = wp_remote_retrieve_body( $response ); if ( $response_code == 200 ) { error_log( 'API key 续费成功: ' . $api_key ); } else { error_log( 'Flask API 响应错误: ' . $response_body ); } } } }
|
白名单设置
1 2 3 4 5 6 7 8
| WHITELIST_IPS = ['192.168.1.100', '203.0.113.1']
@app.before_request def limit_remote_addr(): client_ip = request.remote_addr if client_ip not in WHITELIST_IPS: abort(403)
|
后端自动化操作
因为我完全没写过网络相关的东西,只是简单用python
flask做了一个简易后端,详见github:
jiujiu_server
然后用无头chrome通过selenium自动化操作去目标网站点点点,实现自动化操作。
最后
其实大部分代码可能都不是我写的,而是我告诉AI需求,让他给我实现
虽然经常不work,但是只需凭借最基本的编程知识就可以定位和debug,然后交给AI修改。
虽然总的还是搞了累计可能得有10个小时
但是如果没有AI的话我大概一开始就会放弃吧哈哈哈哈哈哈
为了实现页面处输入key的功能,使用插件Checkout Field Editor
for WooCommerce
要让用户在 WooCommerce 购买商品时输入 Key 码,并在交易完成后将 Key
码传递给后端 Flask 服务器完成续费,您可以按以下步骤操作。
步骤 1:添加 Key
码输入框到结账页面
首先,需要在 WooCommerce 结账页面添加一个自定义的输入字段用于输入 Key
码。通过修改 WordPress 的 functions.php
文件来实现这个输入框。
代码步骤:
- 在 WordPress 后台,进入 外观 ->
主题文件编辑器。
- 打开
functions.php 文件。
- 添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| add_action( 'woocommerce_after_order_notes', 'add_key_code_field_to_checkout' ); function add_key_code_field_to_checkout( $checkout ) { echo '<div id="key_code_field"><h3>' . __('请输入您的 Key 码') . '</h3>'; woocommerce_form_field( 'key_code', array( 'type' => 'text', 'class' => array('key-code form-row-wide'), 'label' => __('Key 码'), 'placeholder' => __('请输入您的 Key 码'), 'required' => true, ), $checkout->get_value( 'key_code' )); echo '</div>'; }
add_action( 'woocommerce_checkout_process', 'validate_key_code' ); function validate_key_code() { if ( ! $_POST['key_code'] ) { wc_add_notice( __( '请填写 Key 码以完成购买.' ), 'error' ); } }
add_action( 'woocommerce_checkout_update_order_meta', 'save_key_code_to_order_meta' ); function save_key_code_to_order_meta( $order_id ) { if ( ! empty( $_POST['key_code'] ) ) { update_post_meta( $order_id, 'key_code', sanitize_text_field( $_POST['key_code'] ) ); } }
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_key_code_in_admin_order_meta', 10, 1 ); function display_key_code_in_admin_order_meta( $order ) { $key_code = get_post_meta( $order->get_id(), 'key_code', true ); if ( $key_code ) { echo '<p><strong>' . __('Key 码') . ':</strong> ' . $key_code . '</p>'; } }
|
去除不必要的按键
外观-> 自定义 -> 额外CSS 1 2 3 4 5 6 7 8 9 10
| .ct-woo-card-actions { display: none !important; }
.single_add_to_cart_button[name="add-to-cart"] { display: none !important; } .quantity[data-type="type-2"] { display: none; }
|
订单完成后向后端服务器发起请求,执行一些自动化操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
add_action( 'woocommerce_order_status_completed', 'send_api_key_to_flask' ); function send_api_key_to_flask( $order_id ) { $order = wc_get_order( $order_id );
$api_key = get_post_meta( $order_id, 'api_key', true );
if ( $api_key ) { $api_url = 'http://1.94.120.213/api/query'; $body = json_encode(array( 'key' => $api_key, 'order_id' => $order_id, ));
$response = wp_remote_post( $api_url, array( 'method' => 'POST', 'body' => $body, 'headers' => array( 'Content-Type' => 'application/json', ), ));
if ( is_wp_error( $response ) ) { error_log( 'Flask API 请求失败: ' . $response->get_error_message() ); } else { $response_code = wp_remote_retrieve_response_code( $response ); $response_body = wp_remote_retrieve_body( $response ); if ( $response_code == 200 ) { error_log( 'API key 续费成功: ' . $api_key ); } else { error_log( 'Flask API 响应错误: ' . $response_body ); } } } }
|
白名单设置
1 2 3 4 5 6 7 8
| WHITELIST_IPS = ['192.168.1.100', '203.0.113.1']
@app.before_request def limit_remote_addr(): client_ip = request.remote_addr if client_ip not in WHITELIST_IPS: abort(403)
|
后端自动化操作
因为我完全没写过网络相关的东西,只是简单用python
flask做了一个简易后端,详见github:
jiujiu_server
然后用无头chrome通过selenium自动化操作去目标网站点点点,实现自动化操作。
最后
其实大部分代码可能都不是我写的,而是我告诉AI需求,让他给我实现
虽然经常不work,但是只需凭借最基本的编程知识就可以定位和debug,然后交给AI修改。
虽然总的还是搞了累计可能得有10个小时
但是如果没有AI的话我大概一开始就会放弃吧哈哈哈哈哈哈