至于申请的流程,我就不说了,大家去:https://www.alipay.com 官网去看看申请流程

本篇要说的是如何使用支付宝的手机网站支付,所以首先要开通

点击进入“手机网站支付”,然后页面底部“申请接入“,等待审核通过后

就可以新建一个网页应用了,地址是:https://openhome.alipay.com/platform/appManage.htm#/apps

新建完应用后,支付宝会给分配一个APP ID

然后需要填写一个授权回调地址,以及选择的加签方式,加密方式的工具,可以点击支付宝给我们做好的,生成秘钥地址是:https://docs.open.alipay.com/291/105971

WINDOWS加密工具生成器下载
MAC_OSX加密工具生成器下载

我用的后端语言是Python,所以可以去这里下载支付宝的工程师为我们写好的Python的包,我们只需要调用它的类即可
https://pypi.org/project/alipay-sdk-python/

pip install alipay-sdk-python

然后就是官方API文档:https://docs.open.alipay.com/203/105288/

代码如下:

from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClientfrom alipay.aop.api.domain.AlipayTradeWapPayModel import AlipayTradeWapPayModel
from alipay.aop.api.request.AlipayTradeWapPayRequest import AlipayTradeWapPayRequest# 支付宝的PyPI
# https://pypi.org/project/alipay-sdk-python/
# https://docs.open.alipay.com/203/105286/AliPay_APP_ID = "Your APP ID"
AliPay_server_url = 'https://openapi.alipay.com/gateway.do'def get_pay_url(self, out_trade_no, total_amount, subject, body, notify_url):"""官方文档:https://docs.open.alipay.com/203页面接口示例:alipay.trade.wap.pay"""# 对照接口文档,构造请求对象model = AlipayTradeWapPayModel()model.out_trade_no = out_trade_nomodel.total_amount = total_amountmodel.subject = subjectmodel.body = bodymodel.product_code = "QUICK_WAP_WAY"alipay_request = AlipayTradeWapPayRequest(biz_model=model)alipay_request.notify_url = notify_urlclient = get_alipay_client()response_url = client.page_execute(alipay_request, http_method="GET")return response_url, AliPay_APP_IDdef get_alipay_client(self):"""设置配置,包括支付宝网关地址、app_id、应用私钥、支付宝公钥等,其他配置值可以查看AlipayClientConfig的定义。"""alipay_client_config = AlipayClientConfig() alipay_client_config.app_id = AliPay_APP_IDalipay_client_config.alipay_public_key = AliPayPublicKeyalipay_client_config.app_private_key = AliPayPrivateKey# logging.basicConfig(#                     level=logging.INFO,#                     format='%(asctime)s %(levelname)s %(message)s',#                     filemode='a',)# logger = logging.getLogger('')"""得到客户端对象。注意,一个alipay_client_config对象对应一个DefaultAlipayClient,定义DefaultAlipayClient对象后,alipay_client_config不得修改,如果想使用不同的配置,请定义不同的DefaultAlipayClient。logger参数用于打印日志,不传则不打印,建议传递。"""client = DefaultAlipayClient(alipay_client_config=alipay_client_config)return client

变量response_url就是返回的支付宝支付URL,直接在手机任意浏览器上打开就能看到,如果是支付宝app打开,则直接去支付,如果是其他的浏览器打开,就提示相应的跳转,如果是微信,则微信禁止了支付宝跳转

变量notify_url是支付成功后返回的URL地址,POST形式请求的

class AliPayNotifyUrlController(tornado.web.RequestHandler):"""支付宝手机网站支付结果异步通知官方文档:https://docs.open.alipay.com/203/105286/"""def __init__(self, application, request, **kwargs):super(AliPayNotifyUrlController, self).__init__(application, request, **kwargs)self.title = "支付宝支付"def post(self):notify_time = self.get_argument("notify_time")notify_type = self.get_argument("notify_type", "")notify_id = self.get_argument("notify_id", "")subject = self.get_argument("subject")body = self.get_argument("body")app_id = self.get_argument("app_id")seller_id = self.get_argument("seller_id")seller_email = self.get_argument("seller_email")buyer_id = self.get_argument("buyer_id")auth_app_id = self.get_argument("auth_app_id")buyer_logon_id = self.get_argument("buyer_logon_id")fund_bill_list = self.get_argument("fund_bill_list")fund_bill_list = json.loads(fund_bill_list)fund_bill_list_account = fund_bill_list[0]["amount"]fund_bill_list_fundChannel = fund_bill_list[0]["fundChannel"]trade_status = self.get_argument("trade_status")total_amount = self.get_argument("total_amount")invoice_amount = self.get_argument("invoice_amount")receipt_amount = self.get_argument("receipt_amount")buyer_pay_amount = self.get_argument("buyer_pay_amount")point_amount = self.get_argument("point_amount")version = self.get_argument("version")out_trade_no = self.get_argument("out_trade_no")trade_no = self.get_argument("trade_no")charset = self.get_argument("charset")sign = self.get_argument("sign")sign_type = self.get_argument("sign_type")gmt_create = self.get_argument("gmt_create")gmt_payment = self.get_argument("gmt_payment", None)gmt_close = self.get_argument("gmt_close", None)model = MyAliPayOrderModel()model.notify_time = notify_timemodel.notify_type = notify_typemodel.notify_id = notify_idmodel.subject = subjectmodel.body = bodymodel.app_id = app_idmodel.seller_id = seller_idmodel.seller_email = seller_emailmodel.buyer_id = buyer_idmodel.auth_app_id = auth_app_idmodel.buyer_logon_id = buyer_logon_idmodel.fund_bill_list = fund_bill_listmodel.fund_bill_list_account = fund_bill_list_accountmodel.fund_bill_list_fundChannel = fund_bill_list_fundChannelmodel.trade_status = trade_statusmodel.total_amount = total_amountmodel.invoice_amount = invoice_amountmodel.receipt_amount = receipt_amountmodel.buyer_pay_amount = buyer_pay_amountmodel.point_amount = point_amountmodel.version = versionmodel.out_trade_no = out_trade_nomodel.trade_no = trade_nomodel.charset = charsetmodel.sign = signmodel.sign_type = sign_typemodel.gmt_create = gmt_createmodel.gmt_payment = gmt_paymentmodel.gmt_close = gmt_close# 更新到数据库# to do something# 如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。# 一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)。 self.write("success")self.finish()

手机网站支付-支付宝API-Python相关推荐

  1. 支付宝接口开发-手机网站支付-沙箱测试

    前面一段时间,因为公司业务需求,需要使用支付宝的手机网站支付接口,因为自己也是第一次使用这个,中间走了不少弯路,现在总结一下,希望对遇到同样问题的朋友有帮助. 第一步:登录蚂蚁金服开放平台蚂蚁金服开放 ...

  2. 支付宝支付之扫码支付(电脑网站支付)、H5支付(手机网站支付)相关业务流程分析总结

    前言 在上一篇文章<微信支付之扫码支付.公众号支付.H5支付.小程序支付相关业务流程分析总结>中,分析和总结了微信支付相关支付类型的业务流程,这里作为与微信支付平起平坐不相伯仲的支付宝支付 ...

  3. 【支付宝支付】Java实现支付宝手机网站支付流程

    前言 微信登录网页授权与APP授权 微信JSAPI支付 微信APP支付 微信APP和JSAPI退款 支付宝手机网站支付 支付宝APP支付 支付宝退款 以上我都放到个人公众号,搜一搜:JAVA大贼船,文 ...

  4. 支付宝手机网站支付,app支付,PC端支付流程以及服务端php支付下单,回调流程详解

    一.支付宝支付相关文档地址: 支付宝支付相关的文档地址:https://open.alipay.com/api 电脑网站支付:https://opendocs.alipay.com/open/270/ ...

  5. 支付宝PC即时到账和手机网站支付同步

    前几个月做了一个旅游网站,有PC站和手机站,涉及支付宝支付功能. 要求:PC站下的单,用户用手机登录也能支付;同理,手机站下的单,PC端登录也能支付. 附支付宝开放平台网址:即时到账 ,手机网站支付. ...

  6. 支付宝手机网站支付、支付查询、退款、退款查询、转账接口整合

    /*** 二次验签*/public boolean checkSign(HttpServletRequest request, String alipayPublicCertPath) throws ...

  7. SpringBoot集成支付宝沙箱手机网站支付详细流程和踩坑分享

    描述 本文主要讲解SpringBoot集成支付宝沙箱手机网站支付,即网页点击按钮发起支付,跳转到沙箱app付款 由于其他博客的流程大多笼统,有时候并不能找到正确的集成方式,本文尽可能详细的阐述付款,异 ...

  8. 支付宝/微信手机网站支付总结

    1. 微信H5支付 2. 支付宝app支付 3. 支付宝当面付 标签:支付宝.手机网站支付.个人总结 1.关于申请账号必备清单: 营业执照 法人的身份证信息 企业对公账号信息 邮箱(作为登录账号) 一 ...

  9. 支付宝手机网站支付实战踩坑

    准备 需求 需求就是最简单的对接支付宝支付接口 方案心路历程 简单用http对接一下,不过想了一下觉得第三方提供的SDK总是不用,所以打算尝试一下 支付宝新版SDK,从文档到git再安装到使用,然后放 ...

  10. Java 支付宝手机网站支付下单 支付回调 及订单查询实现

    首先,参考官方api: alipay.trade.wap.pay(手机网站支付接口2.0) 官方提供DEMO下载,不过是jsp的 准备工作:平台入驻,签约功能,应用上线,配置秘钥等 使用Alipay ...

最新文章

  1. 两个各四只青蛙过河java_趣味算法——青蛙过河(JAVA)
  2. 传奇服务端各文件用途说明
  3. html中js设置密码长度,JS判断邮箱格式,密码输入是否一致,不能为空,长度控制等...
  4. info命令Linux,Linux zipinfo命令
  5. 经典水墨素材点缀中国风海报|简约国际范
  6. java如何处理tcp异常断开_(转)TCP连接异常断开检测
  7. 关于在IBatis中返回DataSet
  8. matlab中firrcos,DMR数字集群关键技术的应用研究
  9. Atitit java rest mvc微服务原理以及框架选型 目录 第一节 Mvc原理 model controler view 1 第二章 Spark 最简单 1 第一节 Sprbt to
  10. 推荐姊妹篇:搜索中的深度匹配模型
  11. 移动叔叔MTK6589一键ROOT工具v3.0+by+罗微
  12. 中小企业(OA)办公系统方案 huangai[VA]
  13. 打字练习网站keybr.com
  14. 第十节、grep、find、sed和awk
  15. ESP8266制作天气预报海藻球微景观生态缸记录(一)
  16. LVGL笔记11--lv_btn按钮
  17. Android小练习2——制作点菜界面
  18. 这一次,抄袭的人竟然是Facebook!美版微信要出现了吗?!
  19. 10到100整数倍数英文怎么写
  20. 强制重启计算机快捷键,强制重启电脑快捷键

热门文章

  1. 蓝牙技术|伦茨科技智能语音遥控器方案简介
  2. 09年全球IT企业互联网公司市值排行榜
  3. 编程示例:公农历转换的算法
  4. 深度学习:透过神经网络的内在灵魂与柏拉图的哲学理念
  5. jeff dean_Jeff Dean的构建大型分布式系统的软件工程建议
  6. 马云的教、马云的会、马云的墓
  7. python英雄对战代码_Python爬虫获取op.gg英雄联盟英雄对位胜率代码
  8. 手把手教你爬取并下载英雄联盟所有英雄皮肤高清大图
  9. 【XJTUSE计算机图形学】第四章 真实感图形学(1)——–颜色视觉
  10. adobe photoshop cs4 注册码