• 支付宝记---电脑网站支付(.NET)


    根据商品信息和价格生成支付宝支付的二维码

    2019年夏,张渔歌仄伏于家中。越明年,疫情依旧,渔歌隧研究支付宝支付。其中心酸不言表,属予作文以记之。

    一、准备工作

    1、支付宝开发平台https://open.alipay.com/。需要进行企业级的账号,需要注册主要是营业执照和法人手机。

    注册地址:https://certifyweb.alipay.com/certify/reg/guide#/ 注册成功后登陆

    2、支付宝商家其实就是支付宝。https://www.alipay.com/ 这个也得是企业用户。

    3、支付宝开放平台开发助手,主要是生成公钥和秘94A5

    4、电脑端支付demo,下载地址:SDK & Demo 获取 | 网页&移动应用

    提供三种语言java net php。目前python还不支持。

    二、操作流程

    1、登陆支付宝开放平台,进入控制台。找到网页/移动应用,点击创建网页/移动应用。

    创建完成后如下图。

    应用创建完成后需要配置才可以,应用创建后会分配一个appID,在以后的开发中会使用。

    2、配置创建的应用。点击应用会进入到应用的详细页面

    2.1应用详情

    该页面不需要配置,创建应用的时候已经设定完成

    2.2开发设置

    该页面是个关键页面,需要配置1处,配置的时候需使用“支付宝开放平台开发助手”

    我用的是net所以用的是非java

    将生成的公钥配置到开发设置【接口加签方式(密钥/证书)】中即可。其他配置根据自己服务器和软件要求进行相应的配置就可以。

    2.3 产量绑定

    该页面是核心页面需要配置应用的各项能力,支付宝提供了几十种。我们这里使用电脑网站支付。

    选电脑网站支付然后点击确定,这时候在产品绑定页面显示未开通。

    点击去开通,这时候跳转至支付宝平台。每个支付的开通不大一样,我这里是电脑网站支付。

    网站备案要注意与企业法人的关系而且网站备案的身份信息要准确。

    提交后大概1个多小时就审核完毕。审核通过后产品绑定页面也显示已开通。

    到这里核心配置就完成了,其实一点也不难,这就是传说中的

    会了不难,难了不会~

    我研究了进1个月才搞定,当然我仅仅是隔三差五的研究一下 ,也踩了不少的坑这里分享一下。

    1. 支付宝要是企业级的个人的不行
    2. 注册支付宝的时候个人的和企业的要分清
    3. 企业法人也可以注册支付宝但是个人的与企业的要分清
    4. 网页网站上生成产品二维码是电脑端支付,电脑端与手机端支付及其类似一定要分

    三、实战

    1、咱们先看看支付宝提供的demo

    https://opendocs.alipay.com/open/270/106291

     我们下载NET的。alipay.trade.page.pay-DoNet-UTF-8.zip这个文件解压后使用vs2022不能运行,我就自己新建了个项目运行结果看一下。

    得引用aopsdk.dll。引用完成后就把配置文件配置一下就可以了。我这里是BaseUI.cs类。内容如下:

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. namespace AliPayMobile
    6. {
    7. public class BaseUI : System.Web.UI.Page
    8. {
    9. // 应用ID,您的APPID
    10. public static string app_id = "";
    11. // 支付宝网关沙箱使用网关:https://openapi.alipaydev.com/gateway.do
    12. // 正式环境使用网关:https://openapi.alipay.com/gateway.do
    13. public static string gatewayUrl = "https://openapi.alipay.com/gateway.do";
    14. // 商户私钥,您的原始格式RSA私钥
    15. public static string private_key = "2021003N3/hKFEJpOaexLRsSDKliLUw9vRSE2SnC4xdNHGLcNlY05VwIDAQABAoIBAHsUo3GY6N45jLFoyse/v52Z7tokpKDJSk+VJEEA6lQAaDyDte2UUQpVYIMeYdPUIGdY3YGnk1e283KAJZKnnOhxv8obI9iKmJXi6cYgwbrmVQRk/yxVR2NWpXzN9FjRnvmWYqUe7EzAI3qJqVc1bSG9DOQSgPargakmPw7i3iZREtr++c+GpsZojTQT/2i6qCutDNcLjf+04ODIeG7GnUWScCX9mI41gmW7HnsUl4ak0+csPeUZRKhUP6Byj4v1UYOV0HIVuMS4+4d19GOnijCOIvO6BHVUY1J9+IrochDlmH35ObXDNGjrKKVuvj20XPgx74QH2lBSKUnVw5uadoECgYEAxzFNOkeEU/D+OSazHT7d5alMMSVO9bNQVSEEuZ72friHKJoPAPDWNmbdXCgeA51A0H4SeSaeo3NaBmC/otGaFRVStmy+pwJhamGVTZC4aGfs79dsVqbTPN1vL0Oh55jSj8flBGxTc0YfDNTF12g0ROouubAvsRPJIN8GcCnxrOcCgYEAuqCGnE9k+FUoZWA0UHytLaOrz5lbPTl2GWl76CKuzulB+EtOBL/FyFY1mzKLz3bKUVNOL63plSB4HhW9PbCnIVct/bXKWTt3wHdLAQYlx88q7sQghxv8//Q2/jMsnswGjv5YLbBoVSKo9SR8GoWVV3ZA9rjbtAU7fbctjq9TkhECgYEAq3O6P4GzWvVCPTscTP4BzV5toJe2YTIY4U1sXcF/9g8q9z2z0GF8YJMl0d8OBppiYZNCn1kojxQI1xiLmr/DWoZiDXeImwQniYO5GWyJ7gQWI1NPgz5Q8EDBJPOX9lrKUswCSk5bfgtLSqYSLJka9H6F/Xqzcj3PjyWoyv6vcN0CgYEAsykV8QsbEHeYDzI7JqV6Dx1X/DTp7S2znZOxWtmo3YP6S+XnIRIFSlzQm4v7wg/1C/ugTI91dS81gRQ3lvh2icBKq4yQk/dN8BvVikcfj+DnA06PN4V77S/Cd2gjRtLw3Od5OWtnzYs3jhcXeNKS2uLwXKp8aCa5xOdMOfVAkjECgYBi097XwqqHzxZoaCxmknxsHTAoQlH4MCd7A70UFbLhtxaRSfWJO/qEJZ9+SoHlhuel0WOVe+Ag19VdZyRAaXFMJcUEM1zR2NrMF3e3jDNdqR+aZjEXAMuy2W0t/WixosRDVFmMX8Ld67O82T4tfUw2hNomHLHGrqwwns0ybfRDNw==";
    16. // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    17. public static string alipay_public_key = "2021003Xcfvj+DXaZ+4qTxRC6j7oPNJdlNQTYokz010j9CB21ZXavHsHAWrttNQrIqR/un+MsihjrDiQIDAQAB";
    18. // 签名方式
    19. public static string sign_type = "RSA2";
    20. // 编码格式
    21. public static string charset = "UTF-8";
    22. }
    23. }

    配置项写自己的就可以了。wappay.aspx这个页面是demo的页面原样抄袭就行。

     有图有真相。

    2、实践到项目

    我的网站地址:亚丁号

    实际实现地址:分享116个PHP源码,总有一款适合你

    其实需要注意的就是回调地址,其他的和demo中一样。

    第一步、引入dll

    第二步、编程配置文件

    第三步、编写业务文件

    1. DefaultAopClient client = new DefaultAopClient(gatewayUrl, app_id, private_key, "json", "1.0", sign_type, alipay_public_key, charset, false);
    2. //return Content(ARTICLE_CODE);
    3. OrderinfoDataAccess order = new OrderinfoDataAccess();
    4. string total_amount = articleViewModel.Article.ARTICLE_HID_PRICE.ToString();
    5. string transaction_no = order.GenerateOrderCode( ARTICLE_CODE);
    6. string subject = articleViewModel.Article.ARTICLE_TITLE;
    7. // 组装业务参数model
    8. AlipayTradePagePayModel model = new AlipayTradePagePayModel();
    9. model.Body = subject; 商品描述
    10. model.Subject = subject;
    11. model.TotalAmount = total_amount;
    12. model.OutTradeNo = transaction_no;
    13. model.ProductCode = "FAST_INSTANT_TRADE_PAY";
    14. AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
    15. // 设置同步回调地址
    16. request.SetReturnUrl("http://192.168.3.170:9103/pay/alireturn");
    17. // 设置异步通知接收地址
    18. request.SetNotifyUrl("");
    19. // 将业务model载入到request
    20. request.SetBizModel(model);
    21. AlipayTradePagePayResponse response = null;
    22. try
    23. {
    24. response = client.pageExecute(request, null, "post");
    25. //Response.Write(response.Body);
    26. //return Content(response.Body);
    27. ViewData["PaymentBody"] = response.Body;
    28. return View();
    29. }
    30. catch (Exception exp)
    31. {
    32. throw exp;
    33. }

    到此全部结束。谢谢大家!送老铁一首打油诗

    学习知识费力气,

    收集整理更不易。

    知识付费甚欢喜,

    为咱码农谋福利。

  • 相关阅读:
    Redis事务
    【Docker】Dockerfile常用指令
    浅谈数字孪生产业应用与标准----工业软件讲坛第七次讲座
    java毕业生设计在线教学质量评价系统计算机源码+系统+mysql+调试部署+lw
    计算机毕业设计之java+ssm校园视频监控系统
    day02小程序快速入门
    小程序制作小程序开发适合哪些企业?
    【Java 进阶篇】Java会话技术之Cookie的存活时间
    开发项目时常用git命令合集
    14款DevOps/SRE工具,助力提升运维效率
  • 原文地址:https://blog.csdn.net/zy0412326/article/details/127803316