Python 支付宝支付

一,支付宝介绍

1. 支付宝开发网址

支付宝开放平台: https://open.alipay.com/platform/home.htm
支付宝沙箱环境: https://openhome.alipay.com/platform/appDaily.htm?tab=info
支付宝开发者文档:https://openhome.alipay.com/developmentDocument.htm
电脑网站支付流程:https://docs.open.alipay.com/270
生成签名:https://docs.open.alipay.com/291/106103/
python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md

二,使用python对接支付宝

直接使用第三方SDK(python-alipay-sdk): https://github.com/fzlee/alipay/blob/master/README.zh-hans.md

1. 登录开发者中心,熟悉"电脑网站支付"整体流程

# 访问"支付宝开发平台"登录,可以访问开发者中心
https://open.alipay.com/platform/home.htm
# 可以参考"电脑网站支付" 熟悉电脑支付整体流程
https://docs.open.alipay.com/270/105899/

2. 第一步:创建应用(这里使用沙箱环境测试)

1)沙箱环境说明

1. 线上环境需要创建应用,因为我们不是企业,没有资质,所以只能申请沙箱环境

2. 简单来讲沙箱环境就是给开发者使用的测试环境

3. 沙箱环境地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info

3、按照官方要求生成秘钥

生成秘钥参考官网:https://docs.open.alipay.com/291/105971 

3、把生成的app公钥粘贴到沙箱环境的app中

沙箱环境地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info

  • 1)粘贴app公钥到沙箱环境中

  • 2)支付宝公钥一会再程序中要使用

三,使用 python-alipay-sdk 支付&查询支付结果

1、说明

  1. 阿里官方没有提供python对接支付的sdk,但是python库中有非官方的sdk包可以使用
  2. python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
  3. 使用起来非常简单,只要传入几个必要的参数就可以完成
  4. 由于支付对安全要求很高,所以要理解对接支付宝安全的流程:公钥加密、私钥解密 这八个字

2,上代码

# alipay_test.py
from alipay import AliPay

# 沙箱环境中 app 私钥
app_private_key_string = open('app_private_key.pem').read()
# 支付宝公钥
alipay_public_key_string = open( 'alipay_public_key.pem').read()

def get_alipay_url():
    alipay = AliPay(
        appid="2016101800716047",  # 沙箱appid
        app_notify_url=None,  # 默认回调url
        app_private_key_string=app_private_key_string,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA",  # RSA 或者 RSA2
        debug=True,  # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址)
    )
    # 调用支付接口
    # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no="201611124",  # 订单id,应该从前端获取
        total_amount=str(0.01),  # 订单总金额
        subject="测试阿里云付款",  # 付款标题信息
        return_url=None,  # 付款成功回调地址(可以为空)
        notify_url=None  # 付款成功后异步通知地址(可以为空)
    )
    pay_url = "https://openapi.alipaydev.com/gateway.do?" + order_string
    print(pay_url)  # 将这个url复制到浏览器,就会打开支付宝支付页面

def query_pay():
    alipay = AliPay(
        appid="2016101800716047",  # 沙箱appid
        app_notify_url=None,  # 默认回调url
        app_private_key_string=app_private_key_string,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA",  # RSA 或者 RSA2
        debug=True,  # 默认False,我们是沙箱,所以改成True(让访问沙箱环境支付宝地址)
    )
    trade_query = alipay.api_alipay_trade_query(
        out_trade_no=20161112,  # 上面生成支付码页面时传入的商品订单号
        trade_no=None
    )
    print(trade_query)

if __name__ == '__main__':
    get_alipay_url()
    query_pay()

'''
trade_query 查询用户付款信息
返回信息详情请看官方:https://docs.open.alipay.com/api_1/alipay.trade.query
{
    "code": "10000",    # code=10000代表支付成功
    "msg": "Success",
    "buyer_logon_id": "foq***@sandbox.com",
    "buyer_pay_amount": "0.00",
    "buyer_user_id": "2088102180228981",
    "buyer_user_type": "PRIVATE",
    "invoice_amount": "0.00",
    "out_trade_no": "20161112",
    "point_amount": "0.00",
    "receipt_amount": "0.00",
    "send_pay_date": "2020-02-20 21:20:48",
    "total_amount": "0.01",
    "trade_no": "2020022022001428981000087565",
    "trade_status": "TRADE_SUCCESS"
}
'''
# alipay_public_key.pem   支付宝公钥

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB
-----END PUBLIC KEY-----
# app_private_key.pem app私钥

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCqHFHARYve67Nt/xADRjFsRVTuwOaUiE6GBoQD6JnDOeD07TF1L7cqL4c4zxqEWlcb5p7ZO5Czyw7mpQ7W1jtI9smBxEPEC0ZvlsOuh8zAiVng4gj54eDHarLhfkMk+/pzq44AT/B1CQgtUJRGZrppTO/4SEQZYMO5RcesnPO32QIDAQABAoGAZXlbMuzJkQLdGAKM1McseD+reHjNk1D0NnLwkTxRbOm7zZ8oX5VFF/8eFL9GPCl/yP77Ru6HVRkOHHvdrD5DQjkJ4VipmDQ8xfZlpMmdc2HLtezqR9GG3xso/cAdpCCRjR+vHfr/BTltEiZD3OJapGojyURo/QG5qe7r5lPGBJkCQQD0iZy2+xTfgS58vlD8wtYOXVYkQ4aGtejKx0wgvyws3ahLmv5t9lBB6YfKCVuOHv1ZvwAngWpTsoh4vxeLT8sbAkEAshWaaRyER9SJaeMIBuRf24Bmlyk6piDLTpOOE4lduvjR6j+IgJjY5/N4QTwy9G1vMVwWVzOX/wyinrY48wSkGwJBALcncudiO4oDuYvZB9OpIqZzphdXNCUljoyCpTRJu46HHowyNKqruAUGIpxiUd6qu1tCwZzVQ4wYxjqZ9cp0I00CQEJJ7ldQCSFfyOLEYrmGCvR/ADEmZLFwJZ2TKWC2UlCFzEWg7qPHwX3d0BagXOtFTQ2XlK1TBDIpNuNTOzGiuZ8CQAY/vcaxPm3VyjfevHpFmmwqHuNmRTyKdc3bd8NXTj/MJk7en/gK86PUHdixvudojGTbQOdSSWM/QQoVu8d+DFk=
-----END RSA PRIVATE KEY-----

3.支付宝支付流程

python-alipay-adk : https://github.com/fzlee/alipay/blob/master/README.zh-hans.md

原文地址:https://www.cnblogs.com/xinzaiyuan/p/12371539.html

时间: 2024-11-01 11:24:02

Python 支付宝支付的相关文章

Python必备基础:这些NumPy的神操作你都掌握了吗?微交易支付通道申请微信支付接口对接支付宝支付通道搭建微盘网银扫码快捷H5支付

导读:NumPy是Python的基础,更是数据科学的通用语言. 本文简单介绍NumPy模块的两个基本对象ndarray.ufunc,介绍ndarray对象的几种生成方法及如何存取其元素.如何操作矩阵或多维数组.如何进行数据合并与展平等.最后说明通用函数及广播机制. 需要了解 JR金融项目 区块链,比特币,p2p项目,B2B网关,现货资金盘,期货招商,股票配资,商品交易所 大盘的 金融支付 第三方支付,网关支付,网银支付,银行卡支付,话费卡支付,银联代扣,支付渠道,支付宝支付,微信支付,扫码支付,

Python对接支付宝支付自实现

Python对接支付宝支付自实现 # -*- coding: utf-8 -*- import base64 import json import urllib.parse from datetime import datetime import requests from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes from crypt

django实现支付宝支付

1.沙箱环境 蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联调的辅助环境.沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑. 在开发者应用上线审核前,开发者可以根据自身需求,先在沙箱环境中了解.组合和调试各种开放接口,进行开发调通工作,从而帮助开发者在应用上线审核完成后,能更快速.更顺利的进行线上调试和验收工作. 详细介绍---->点我点我 1.1配制沙箱环境 登录支付宝平台,点击自研开发者,点击导航的开发者中心-->研发服务,填写相关信息,完成实名认证 点击“开放平台-开

支付宝支付相关开发

开发支付宝的支付功能 1.首先去开放平台进行注册 这里有一个设置应用公钥: 使用支付宝的密钥生成工具进行密钥生成: 把应用公钥复制到沙箱页面内让支付宝生成一个支付宝公钥: 第二步骤: 使用支付宝的官方提供的SDK进行URL的加密: 这里是从GitHub上面找到的python版本的,支付宝官方没有python版本的. pay.py from datetime import datetime from Crypto.PublicKey import RSA from Crypto.Signature

支付宝支付和微信消息推送

支付宝支付 如果想在网站上,通过扫码支付宝收钱,你必须到支付宝网站https://openhome.alipay.com/platform/home.htm申请账号,但是正式的,需要你提供营业执照,现在没有,也不要紧,支付宝还提供一个沙箱的测试环境 服务商注册:业务只是网站上收个钱,注册一个支付系统服务商就可以了 注册完成后,进入我的蚂蚁金服开方平台首页,进行应用创建就可以了(这是正式的,需要营业执照) 程序开发使用时,你只需要按照支付宝提供的接口规则和加密方法进行数据传递就可以了 现在没有营业

使用Tornado异步接入第三方(支付宝)支付

目前国内比较流行的第三方支付主要有支付宝和微信支付,博主最近研究了下如何用Python接入支付宝支付,这里我以Tornado作为web框架,接入支付宝构造支付接口. 使用Tornado异步接入支付宝支付流程: 1. 进入蚂蚁金服开放平台填写开发者信息.应用信息 2. 配置RSA256密钥,生成支付宝和应用的密钥 3. 构造订单接口API,生成订单 4. 构造支付接口 1. 进入蚂蚁金服开放平台填写开发者信息.应用信息 这里通过沙箱环境开发测试接口,蚂蚁金服开放平台-->开发者中心-->研发者服

支付宝支付接口

-支付宝支付 -商户号:需要营业执照 -沙箱环境(测试环境) -支付宝支付有java版的demo,php版的demo,但是没有python版的demo 买家账号bfxtlv8393@sandbox.com 登录密码111111 支付密码111111 -支付宝demo 安装模块:pip3 install pycryptodome -关于支付私钥公钥 非对称加密有公钥和私钥:公钥是给别人用,私钥是自己用的 -用户私钥 -用户公钥 -支付宝公钥 -项目中使用支付宝支付: -pay.py类放到项目中 -

支付-支付宝支付简单了解

支付宝支付 # 1.在沙箱环境下实名认证:https://openhome.alipay.com/platform/appDaily.htm?tab=info # 2.电脑网站支付API:https://docs.open.alipay.com/270/105898/ # 3.完成RSA密钥生成:https://docs.open.alipay.com/291/105971 # 4.在开发中心的沙箱应用下设置应用公钥:填入生成的公钥文件中的内容 # 5.Python支付宝开源框架:https:/

微信浏览器中调用支付宝支付

众所周知,在微信浏览器中是无法唤起支付宝的,会提示请在浏览器中打开,如果非要在微信浏览器中调起支付宝的话,只能是跳出微信浏览器,关于这一点,在支付宝官网给出了一个例子.但是,话说回去,后来我仔细想想,其实真的没有必要非要在微信浏览器中调起支付宝支付(当时真是一根筋啊啊啊...) 支付宝手机网站支付的官方文档: https://doc.open.alipay.com/docs/doc.htm?treeId=203&articleId=105288&docType=1 快速接入: https: