在App中,用户通过支付宝提现时,将我账户上的资金转账到他的账户
https://openhome.alipay.com/platform/appDaily.htm?tab=info
https://opendocs.alipay.com/open/291/105971
pip install python-alipay-sdk
from datetime import datetime
from alipay import AliPay
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
class Payment():
def __init__(self, appid, url):
'''
支付接口初始化
:param appid: 商户appid
:param url: 支付宝网关
'''
self.app_private_key_string = """-----BEGIN PUBLIC KEY-----
你的应用秘钥
-----END PUBLIC KEY-----"""
self.alipay_public_key_string = """-----BEGIN RSA PRIVATE KEY-----
你的支付宝公钥
-----END RSA PRIVATE KEY-----"""
self.alipay = AliPay(
appid=appid, # appid
app_notify_url=url, # 支付宝网关
app_private_key_string=self.app_private_key_string, # 应用私钥
alipay_public_key_string=self.alipay_public_key_string, # 支付宝公钥
sign_type="RSA2",
debug=True, # 本地调试, 上线设置为False
)
def pay(self, payee_account, amount, payee_real_name=None, remark=None, payer_show_name=None,
payee_type="ALIPAY_LOGONID"):
'''
发起转账
:param payee_account: 收款方账户
:param amount: 转账金额
:param payee_real_name:
:param remark: 收款方姓名
:param payer_show_name: 转账备注
:param payee_type: 付款方姓名
:return:
'''
result = self.alipay.api_alipay_fund_trans_toaccount_transfer(
datetime.now().strftime("%Y%m%d%H%M%S"),
payee_type=payee_type, # 收款方账户类型
payee_account=payee_account, # 收款方账户
amount=amount, # 转账金额
payee_real_name=payee_real_name, # 收款方姓名(可选,若不匹配则转账失败)
remark=remark, # 转账备注
payer_show_name=payer_show_name # 付款方姓名
)
if result['code'] == '10000':
if result['msg'] == "Success":
print("转账成功" + " 交易单号:" + result["order_id"])
else:
print(result)
print(result['sub_msg'])
obj_pay = Payment(
appid="2016102300746212",
url="https://openapi.alipaydev.com/gateway.do"
)
obj_pay.pay(
payee_account="dvkwkh0714@sandbox.com",
amount=500,
)
AliPay接口文档 :
https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>异常
错误原因:
这是一个SSL证书验证错误,当请求一个https站点,但是证书验证错误时,就会报这样的错误。
解决方法:
只需在代码中加入如下两行将跳过证书的检查,即可成功访问网页。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
"""-----BEGIN PUBLIC KEY-----
你的应用秘钥
-----END PUBLIC KEY-----"""
"""-----BEGIN RSA PRIVATE KEY-----
你的支付宝公钥
-----END RSA PRIVATE KEY-----"""
-----BEGIN PUBLIC KEY----- + 回车 + 秘钥 + 回车 + -----END PUBLIC KEY-----