1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Python 调用支付宝沙箱接口 实现 扫码支付

Python 调用支付宝沙箱接口 实现 扫码支付

时间:2022-10-06 19:28:07

相关推荐

Python 调用支付宝沙箱接口 实现 扫码支付

思路剖析

支付宝开放平台 登录

登陆之后 点击这个 研发服务

然后下载 一个 支付宝沙箱的 移动端

点击左侧的沙箱账号,就可以知道 登录沙箱的 账号和 密码了,也可以 往死充钱。他是可以扫 沙箱收款的二维码的。

我们现在需要 生成 RSA密钥

然后再 点击

然后下载这个工具

下载好后 找到我的 文档地址

往下滑动 可以发现 设置的一些条件 我们记录一下

APPID --> 101400681366

支付宝网关 --> /gateway.do

要用到关键性 的东西了 RSA2 我们先 设置一下它

然后更改 公钥

出现下面这个后 我们等待一下啊

我们 打开刚下 下载的 软件包

双击打开 静静等待 然后复制公钥

复制之后 替换 刚才打开的 加签管理中的公钥

替换后 保存

然后继续 更改 公钥

点击修改后

回到 .bat 生成密钥的工具 打开 文件所在的位置,把那两个 text 放到我们的 项目里。

这两个文件非常的重要

回到 沙箱 填写这些内容

回调地址 故名思意 扫码完成后 跳转的到的地址,所以我们要写一个视图函数来 对应这个地址。

# views.pydef pay_result(request):pass

先简短的这么写 后期再完善它。所以回调地址 就要写 这个名字

应用网关 设置成 咱们刚才 暂存的那个

呼~ 配置完了 该到 Python 的了

# 第一次安装 不用执行后面的 upgradepip install python-alipay-sdk --upgrade

将下面的语句 放到 项目中的 应用公钥里面

在支付宝上下载的公钥是一个字符串,需要在文本的尾部添加标记-----BEGIN PUBLIC KEY-----内容-----END PUBLIC KEY-----密钥也是如此-----BEGIN PRIVATE KEY-----内容-----END PRIVATE KEY-----

将 刚才的 两个 公钥密钥文件放入 我们的项目目录里,和 DJango 的父子应用同级

然后我们 为了 避免 中文 将他们改成了 这个名字。

下载的 引入的Alipay

源码:

看 引入的Alipay源码可知 它所需要的以下的参数

# views.pyAPPID = ################ 你的APPIDAIPAY = '/gateway.do' # 支付宝网关from alipay import AliPayfrom shiyanlou.settings import BASE_DIRimport osdef alipay(): # 之前是 pay_resultap = AliPay(appid=APPID,app_notify_url='http://127.0.0.1:8000/pay_result/', # 回调地址app_private_key_path=os.path.join(BASE_DIR,'private_key.txt'), # 私钥地址alipay_public_key_path=os.path.join(BASE_DIR,'public_key.txt'), # 公钥地址)return ap

写到这里想必大家有所猜疑了吧,ID、公钥、密钥、回调地址、这个就是请求支付宝 沙箱 接口的必要参数把,return返回 就横额说明白这个意思了。没错就是这样的。

然后 作为 收款人的我们 写一个商品,调用alipay中的网页支付方法,实现 一个页面的支付二维码 和商品进行关联的话 我们 测试一下。更改成类方法:

# views.pyimport timeclass paytest(APIView):def get(self, request):ap = alipay()order_string = ap.api_alipay_trade_page_pay(total_amount=9274700,# 价格subject='Lamborghini Aventador',# 主题out_trade_no=str(time.time()).replace(',','') # 订单ID)pay_url = AIPAY + order_stringreturn Response({'pay_url': pay_url})

alipay也就是支付宝在支付的时候 是有两个订单ID的 一个订单ID对应着 数据(商品),还有一个就是流水,我们需要生成一个订单ID

假如用户退款的话,alipay就会通过用户订单ID去找,找到之后返回收款人。引入 time 模块 自己生成一个.

pay_url代表的是 二维码链接的地址、前面的是网关地址 拼接 上 商品信息。

写一个 url 看一下。

# urls.pypath('pay/', views.Paytest.as_view(), name='paytest'),

然后用 PostMan 启动看一下

把 这个 url CV 下来 去 页面看一下

我的 兰博基尼-艾文塔多 终于出来了。。。

我就不扫了 ok

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。