更新时间:2025-11-24 GMT+08:00
分享

附录

本实践使用Python脚本模拟API接口。

本章节提供的python脚本仅供参考,用户可根据实际情况自定义python脚本的内容。

如需使用本章节提供的python脚本,请手动复制到txt文本中,并保存为.py格式文件。

from flask import Flask, jsonify, request

app = Flask(__name__)

# 模拟用户卡片数据和余额(内存存储)
cards_data = [
    {"card_index": "1", "card_no": "6222020200047891615", "card_type": "借记卡"},
    {"card_index": "2", "card_no": "6333020200047891234", "card_type": "借记卡"}
]

# 初始余额,单位:分(避免浮点误差)或元(此处按元处理,整数)
balances = {
    "6222020200047891615": 199300,
    "6333020200047891234": 50000
}

@app.route('/my_cards', methods=['GET'])
def get_my_cards():
    return jsonify({
        "card_list": cards_data,
        "card_size": len(cards_data)
    })

@app.route('/card_balance', methods=['GET'])
def get_card_balance():
    card_no = request.args.get('card_no')
    if not card_no:
        return jsonify({"error": "card_no is required"}), 400
    balance = balances.get(card_no)
    if balance is None:
        return jsonify({"error": "Card not found"}), 404
    return jsonify({"balance": balance})

@app.route('/transfer', methods=['POST'])
def transfer():
    data = request.get_json()
    card_no = data.get('card_no')
    amount = data.get('amount')

    if not card_no or amount is None:
        return jsonify({"error": "card_no and amount are required"}), 400

    if card_no not in balances:
        return jsonify({"error": "Card not found"}), 404

    if not isinstance(amount, (int, float)) or amount <= 0:
        return jsonify({"error": "Invalid amount"}), 400

    if balances[card_no] < amount:
        return jsonify({"error": "Insufficient balance"}), 400

    balances[card_no] -= amount
    return jsonify({"balance": balances[card_no]})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000, debug=True)

相关文档