python 3 python-alipay-sdk(支付宝支付)

python 3 python-alipay-sdk(支付宝支付)

记录一下支付宝支付整个流程和第三方sdk的使用

1.应用申请及配置流程

  • 使用支付宝支付的前提是必须要应用。 申请链接: 创建应用
  • 配置应用参数(获取公钥,私钥,appid)

1.选择网页&移动应用,创建应用,网址URL填写服务器地址

2.创建完点击应用进去详情页,添加能力-添加手机网站支付,我这里已经添加过了,所以没有显示,添加完成出来就点签约,填写资料,之后需要去商家中心绑定appid。
在这里插入图片描述
在这里插入图片描述
绑定appid
在这里插入图片描述

3.在应用信息里面,设置好秘钥,ip白名单,回调地址, 如何生成秘钥
在这里插入图片描述

填写生成之后的公钥进去

在这里插入图片描述

2.python python-alipay-sdk操作

python-alipay-sdk 文档

安装 python-alipay-sdk

pip install python-alipay-sdk

公钥和私钥我是保存在pem文件里的

from alipay import AliPay

#支付宝官方支付参数配置
# 进行alipay初始化
# # 配置地址
private_path = os.path.join(os.path.join(BASE_DIR,'certificate'), 'alipay_private_key.pem')
public_path = os.path.join(os.path.join(BASE_DIR,'certificate'), 'alipay_public_key.pem')
#获取公私钥字符串
app_private_key_string = open(private_path).read()
alipay_public_key_string = open(public_path).read()
notify_url = 'https://zhpayapi.agait.cn/pay/alipay/notify' #回调url

#实例化支付宝支付sdk
alipay = AliPay(
    appid="appid",
    app_notify_url=notify_url,  # 默认回调url
    app_private_key_string=app_private_key_string,
    alipay_public_key_string=alipay_public_key_string,
    sign_type="RSA2",
    debug=False,  # 上线则改为False , 沙箱True
)

 #创建支付订单 
 '''
 out_trade_no  = 订单号
 total_amount = 价钱(元为单位)
 subject = 备注
 front_url  = 支付成功跳转的前端地址
 refund_amount = 退款金额数
 '''
 order_string = alipay.api_alipay_trade_wap_pay(
      out_trade_no = order_sn,
      total_amount=str(orderObj.total_pay),
      subject=remark,
      front_url = front_url
  )
  # 拼接应答地址
  #pay_url = 'https://openapi.alipaydev.com/gateway.do?' + order_string  #沙箱地址
  pay_url = 'https://openapi.alipay.com/gateway.do?' + order_string   #线上地址
  
#订单退款
result = alipay.api_alipay_trade_refund(out_trade_no=order_sn,refund_amount = str(orderObj.total_pay))
print(result)

转账,需要在app应用添加能力
在这里插入图片描述

#转账
result = 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  # 付款方姓名
  )

更多API请看文档使用,差不多都是这样用的了,沙箱环境能本地测试,不然就得在线上服务器了~

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值