在电商应用中接入支付宝

本文介绍了如何在电商应用中接入支付宝,包括配置沙箱应用环境和使用第三方SDK。首先,详细说明了在支付宝开放平台创建沙箱应用环境的步骤,然后提到了尽管官方未提供Python SDK,但推荐了一个在GitHub上的易用第三方实现,并指导了安装和配置过程。

支付宝做为一款日常使用的支付理财app被大家喜欢和使用,我们自己的web站点、手机app如果能够提供支付宝付款则必然会有良好的用户体验。详细信息请登录支付宝开放平台

下面是支付宝接入的流程:

 

详细信息请点击https://docs.open.alipay.com/200/105311/

蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑(当前沙箱支持产品请参考“沙箱支持产品列表”)。 在开发者应用上线审核前,开发者可以根据自身需求,先在沙箱环境中了解、组合和调试各种开放接口,进行开发调通工作,从而帮助开发者在应用上线审核完成后,能更快速、更顺利的进行线上调试和验收工作。

一:配置沙箱应用环境

点击“开放平台-开发者中心-沙箱环境”。进入沙箱环境页面,系统已经自动为你创建一个应用,在基础信息中可以看到应用信息。

1. 生成并上传 RSA2(SHA256) 的应用公钥,详见生成RSA密钥;配置 RSA2(SHA256) 的应用公钥后,不需要配置 RSA(SHA1) 密钥,RSA 和 RSA2 签名算法区别可以参考此处

#linux环境可以使用openssl生成秘钥
#启动openssl
python@ubuntu:~$ openssl
OpenSSL> genrsa -out app_private_key.pem 2048 #私钥文文件
openssl>rsa -in app_private_key.pem -pubout -out rsa_public_key.pem #公钥

2. 编写代码时,请将

   a. 请将网关修改为:https://openapi.alipaydev.com/gateway.do

   b. appid 切换为沙箱的 appid

   c. 签名方式使用 RSA2

   d. 应用私钥(private_key)使用第 1 步生成的 RSA2 (SHA256) 的私钥(请根据开发语言进行选择原始或 pkcs8 格式)

   e. 支付宝公钥(public_key)切换为第 1 步配置后应用公钥后,点击查看支付宝公钥看到的公钥

二、支付宝SDK

支付宝官方没有提供python的SDK,但github有很多第三方写的接口,其中https://github.com/fzlee/alipay/blob/master/README.zh-hans.md是非常易用的一个。

1 安装SDK

pip install python-alipay-sdk --upgrade

2 应用程序配置

应用程序需要设置沙箱APPID、应用私钥,支付宝公钥。

  • 将前面生成的应用程序公钥、私钥和支付宝的公钥放到应用的目录下(比如说:alipay目录下)

  • 在settings.py中设置:

#应用程序私钥
APP_PRIVATE_KEY =  open(os.path.join(BASE_DIR,'alipay/app_private_key.pem')).read()
#支付宝公钥
ALIPAY_PUBLIC_KEY  =  open(os.path.join(BASE_DIR,'alipay/alipay_public_key.pem')).read()
#沙箱APPID
ALI_APP_ID = "2016100100641498"

3 电脑网站支付流程

 

4 电脑网站支付代码

def ali_buy(request):
    # order_no = "2019082102983"
​
    alipay = AliPay(
        appid=ALI_APP_ID,
        app_notify_url=None,  # 默认回调url
        app_private_key_string=APP_PRIVATE_KEY,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string=ALIPAY_PUBLIC_KEY,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=False  # 默认False
    )
    #订单
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no="2019061900100",  #订单号,自己定义
        total_amount=30, #金额
        subject="macpro",#订单名称
        return_url="http://localhost:8000/mine/index", #回调地址
        #异步通知商家服务器地址,post
        notify_url="http://localhost:8000/mine/index"  # 可选, 不填则使用默认notify url
    )
    print(order_string)

    # 支付宝网关
    net = "https://openapi.alipaydev.com/gateway.do?"
​
    data = {
        "msg": "ok",
        "status": 200,
        "data": {
            "pay_url": net + order_string
        }
    }
​
    return Response(data)
5 下载沙箱支付宝
沙箱支付宝支付必须使用沙箱支付宝应用扫码(https://sandbox.alipaydev.com/user/downloadApp.htm),目前沙箱支付宝仅支持Android,不支持IOS,下载好沙箱支付宝后,必须使用沙箱账号登录,到沙箱环境里可以看到沙箱账户,密码默认是6个1,可以使用沙箱支付宝扫码模拟支付,不用害怕,不会转你支付宝的帐。但非常沙雕的是,自己不能给自己转账,也就是说测试必须让别人扫
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值