编写支付程序通常涉及以下步骤:
服务器端处理订单:
生成订单信息,并调用支付平台的API。
生成签名:
对订单信息进行签名,确保交易的安全性。
客户端发起支付:
客户端接收到服务器返回的支付信息后,发起支付请求。
支付宝支付示例
import hashlibimport requestsfrom flask import Flask, request, jsonifyfrom xml.etree import ElementTree as ETfrom alipay import AliPayfrom alipay.utils import AliPayConfigapp = Flask(__name__)配置应用私钥和支付宝公钥app_private_key_string = open("./应用私钥2048.txt").read()alipay_public_key_string = open("./支付宝公钥.txt").read()初始化支付宝对象alipay = AliPay(appid="27616",app_notify_url=None,app_private_key_string=app_private_key_string,alipay_public_key_string=alipay_public_key_string,sign_type="RSA2")生成订单def make_order_body(order_info):body = ET.Element("xml")for key, value in order_info.items():e = ET.SubElement(body, key)e.text = valuereturn ET.tostring(body, encoding="utf-8")创建签名def sign(order_info, key):stringA = "&".join(["%s=%s" % (k, order_info.get(k, "")) for k in sorted(order_info)])stringSignTemp = "%s&key=%s" % (stringA, key)return hashlib.sha256(stringSignTemp.encode("utf-8")).hexdigest()模拟生成订单并发起支付@app.route("/pay", methods=["POST"])def pay():order_info = {"subject": "测试商品","out_trade_no": "","total_amount": "0.01","product_code": "QUICK_MSECURITY_PAY"}order_body = make_order_body(order_info)order_info["sign"] = sign(order_info, "your_app_private_key")发起支付请求response = alipay.api_alipay_trade_page_pay(out_trade_no=order_info["out_trade_no"],total_amount=order_info["total_amount"],subject=order_info["subject"],return_url="http://return_url",notify_url="http://notify_url",body=order_body)return jsonify(response)if __name__ == "__main__":app.run()
微信支付示例

