本文共 2354 字,大约阅读时间需要 7 分钟。
作者作为个人开发者,想接入支付功能,所以了解了下目前支付相关的方案,发现大体有以下几种(参见):
以上方案要么没有企业资质,要么太麻烦,要么太贵,幸好发现了支付宝(支持个人开通,但是需要门店照片,这个百度就可以)。
营业执照是可选的,不上传的话,限制单笔收款≤1000,单日收款≤5W,对于个人开发者足够了。 我已经使用python封装了支付宝当面付sdk,并集成到了flask中,下面是github地址成功接入以后,可以在网页&移动应用中,看到我的应用列表中多了一个“应用2.0签约******”的应用:
现在我们可以开发接入了,总体分为以下几个步骤(参考,):from alipay import AliPayimport time# 密钥工具生成的私钥,和支付宝公钥(我保存在了文件中)app_private_key_string = open("app_private_key.pem").read()alipay_public_key_string = open("alipay_public_key.txt").read()print(alipay_public_key_string)'''这里打印应该是这种格式(如果支付宝密钥生成工具生成的密钥没有头尾要自己加上)私钥格式:-----BEGIN RSA PRIVATE KEY----- base64 encoded content-----END RSA PRIVATE KEY-----公钥格式:-----BEGIN PUBLIC KEY----- base64 encoded content-----END PUBLIC KEY-----'''alipay = AliPay( appid="2019***********", # 应用列表中“应用2.0签约******”的appid app_notify_url=None, # 默认回调url app_private_key_string=app_private_key_string, # 应用私钥 alipay_public_key_string=alipay_public_key_string, # 支付宝公钥 sign_type="RSA2", # RSA 或者 RSA2(具体要看你的密钥是什么类型) debug=False # 默认False)out_trade_no = "out_trade_no_123"# 创建订单result = alipay.api_alipay_trade_precreate( subject="test subject", # 订单标题 out_trade_no=out_trade_no, # 订单号(不可重复) total_amount=0.1 # 订单金额,单位元)print(result)# 这里应该打印出{'code': '10000', 'msg': 'Success', 'out_trade_no': 'out_trade_no_123', 'qr_code': 'https://qr.alipay.com/bax05832mvaotxhcpjeh6074'}# 其中用qr_code生成二维码,支付宝扫描即可付款# check order statuspaid = Falsefor i in range(30): # check every 3s, and 10 times in all print("now sleep 3s") time.sleep(3) result = alipay.api_alipay_trade_query(out_trade_no=out_trade_no) if result.get("trade_status", "") == "TRADE_SUCCESS": paid = True break print("not paid...")# order is not paid in 30s , cancel this orderif paid is False: print("支付失败,取消订单") alipay.api_alipay_trade_cancel(out_trade_no=out_trade_no)else: print("支付成功")
转载地址:http://uaxui.baihongyu.com/