当前位置: 首页 > news >正文

dw做的网站成品美工培训机构

dw做的网站成品,美工培训机构,网站建设如何账务处理,免费网页模板源代码一、 接入准备 支付宝支付流程没有微信那么复杂#xff0c;而且支付宝支持沙箱。登录支付宝开放平台控制台 点击开发工具中的沙箱 接口加密方式#xff0c;我这里使用的是自定义密钥。生成密钥的方式 使用支付宝官方提供的密钥工具#xff0c;唯一要注意的是支付宝密钥工具…一、 接入准备 支付宝支付流程没有微信那么复杂而且支付宝支持沙箱。登录支付宝开放平台控制台 点击开发工具中的沙箱 接口加密方式我这里使用的是自定义密钥。生成密钥的方式 使用支付宝官方提供的密钥工具唯一要注意的是支付宝密钥工具生成的是 txt 格式的也就是不包含头部和尾部标识的-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----使用 openssl 命令自己生成。openssl OpenSSL genrsa -out app_private_key.pem 2048 # 私钥 OpenSSL rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥 OpenSSL exit我们需要的东西基本都有了。调试的使用可以下载工具支付宝客户端沙箱版 用沙箱账号进行支付。 开发 import logging from enum import Enumfrom Cryptodome.PublicKey import RSA from alipay import AliPay, AliPayConfig 支付宝支付接入 SDK 文档https://gitee.com/yqmc/alipay/blob/master/README.zh-hans.md pip install python-alipay-sdk --upgrade class AlipayType(Enum):WEB web # 电脑网站支付WAP wap # 手机网站支付APP app # app支付MINI mini # 小程序支付class AliPayClient:def __init__(self, appid, app_private_key_path, alipay_public_key_path, is_sandboxFalse, default_notify_urlNone,return_urlNone):初始化数据:param appid: APP ID:param app_private_key_path: 应用私钥路径:param alipay_public_key_path: 支付宝公钥路经:param is_sandbox: 是否是沙箱模式:param default_notify_url: 默认通知地址self.appid appidself.default_notify_url default_notify_urlself.return_url return_urlself.sandbox is_sandboxself.alipay_gateway_url https://openapi.alipay.com/gateway.do? if not self.sandbox else https://openapi-sandbox.dl.alipaydev.com/gateway.do?self.app_private_key_string self.read_secret(app_private_key_path)self.alipay_public_key_string self.read_secret(alipay_public_key_path)self.alipay AliPay(appidself.appid,app_notify_urlself.default_notify_url,app_private_key_stringself.app_private_key_string,alipay_public_key_stringself.alipay_public_key_string,sign_typeRSA2,debugTrue,verboseTrue, # 输出调试数据configAliPayConfig(timeout15) # 可选请求超时时间)if self.sandbox:logging.debug(当前为沙箱环境)staticmethoddef read_secret(secret_path, import_keyFalse):从文件加载秘钥:param secret_path::param import_key: 是否需要导入秘钥:return:with open(secret_path, r) as fp:return RSA.importKey(fp.read()) if import_key else fp.read()def create_order(self, out_trade_no, amount, subject, notify_urlNone, return_urlNone,pay_typeAlipayType.WEB.value):创建支付订单:param out_trade_no: 订单号:param amount: 金额:param subject: 订单备注:param notify_url: 通知地址:param return_url: 回调地址:param pay_type: AlipayType支付类型:return: order_stringtrade_client {AlipayType.WEB.value: self.alipay.api_alipay_trade_page_pay,AlipayType.WAP.value: self.alipay.api_alipay_trade_wap_pay,AlipayType.APP.value: self.alipay.api_alipay_trade_app_pay,AlipayType.MINI.value: self.alipay.api_alipay_trade_create}kwargs dict(out_trade_noout_trade_no,total_amountamount,subjectsubject,notify_urlnotify_url)pay_type in [AlipayType.WEB.value, AlipayType.WAP.value] and kwargs.update(return_urlreturn_url)order_string trade_client[pay_type](**kwargs)return self.alipay_gateway_url order_stringdef create_pre_order(self, subject, out_trade_no, amount, notify_urlNone):交易预创建(扫码支付):param subject: 订单备注:param out_trade_no: 订单号:param amount: 金额:param notify_url: 通知地址return {code: 10000, msg: Success, out_trade_no: 2023102401, qr_code: https://qr.alipay.com/bax01636yklunuyxijpc002f}resp self.alipay.api_alipay_trade_precreate(subjectsubject,out_trade_noout_trade_no,total_amountamount,notify_urlnotify_url)return respdef refund(self, out_trade_no, refund_amount):result self.alipay.api_alipay_trade_refund(out_trade_noout_trade_no, refund_amountrefund_amount)return True if result.get(code) 10000 else Falsedef notify_verify(self, data):验证回调通知:验证 alipay 的异步通知:param data: 来自支付宝回调 POST 给你的 data字典格式。data {subject: 测试订单,gmt_payment: 2016-11-16 11:42:19,charset: utf-8,seller_id: xxxx,trade_status: TRADE_SUCCESS,buyer_id: xxxx,auth_app_id: xxxx,buyer_pay_amount: 0.01,version: 1.0,gmt_create: 2016-11-16 11:42:18,trade_no: xxxx,fund_bill_list: [{\amount\:\0.01\,\fundChannel\:\ALIPAYACCOUNT\}],app_id: xxxx,notify_time: 2016-11-16 11:42:19,point_amount: 0.00,total_amount: 0.01,notify_type: trade_status_sync,out_trade_no: xxxx,buyer_logon_id: xxxx,notify_id: xxxx,seller_email: xxxx,receipt_amount: 0.01,invoice_amount: 0.01,sign: xxx}signature data.pop(sign)# verificationsuccess self.alipay.verify(data, signature)return success and data[trade_status] in (TRADE_SUCCESS, TRADE_FINISHED)
http://www.hkea.cn/news/14516487/

相关文章:

  • 建设网站需要考虑什么windows2008做网站
  • 家政公司响应式网站建设案例手机网站设计推荐
  • 凯里网站开发gzklyy阜宁县网站建设
  • 建设大学网站服务网络营销的特点包括哪些?
  • 建设银行官方网站下载安装网页制作与网站开发 实验报告
  • 精品网站建设比较好施工企业管理会计实施方案
  • html网站建设案例网站开发多少钱农民
  • 外国网站怎么做关于门户网站建设
  • 电子政务与网站建设工作总结如何把网站做跳转浏览器链接地址
  • 网站的第二域名怎么用安徽制作网站专业公司
  • 网站建设合同 附件网站建设课程设计总结
  • 装修公司做网站有用吗摄影网站设计代码
  • 电商网站的多选菜单插件做好公司网站
  • 网站怎么做百度商桥网站搭建php打不开
  • 网站建设的目的和意义海淘科技上海网站设计
  • 宜昌便宜做网站网站 做内容分发资格
  • 电商网站排行榜西安最新公告
  • 空间站做网站什么版本外贸免费平台
  • 徐州做网站设计外贸大楼
  • 分析对手网站免费设计企业logo
  • 营销网站开发系统网站开发最新流程
  • 行业门户网站建站如何在电脑建设网站
  • 网站续费价格网页传奇哪个最好玩
  • 电商网站建设与运营方向核心关键词如何优化
  • 建好网站后访问中讯高科网站建设
  • 郑州做手机网站建设必知的网站
  • 公司网站建设外包赣州人才网官网登录
  • 网站建设公司株洲WordPress臃肿主题
  • 自建网站餐饮服务提供者应在通信主管部门备案后wordpress怎么改后台密码
  • asp简单的网站怎么做哪里有市场营销培训班