惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
量子位
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
Vercel News
Vercel News
H
Help Net Security
Martin Fowler
Martin Fowler
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
Lohrmann on Cybersecurity
Cyberwarzone
Cyberwarzone
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
S
Secure Thoughts
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog RSS Feed
H
Hacker News: Front Page
P
Proofpoint News Feed
博客园 - 聂微东
N
News and Events Feed by Topic
C
Cybersecurity and Infrastructure Security Agency CISA
D
Docker
博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
S
Security @ Cisco Blogs
博客园 - 【当耐特】
F
Fortinet All Blogs
The Register - Security
The Register - Security
A
About on SuperTechFans
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
NISL@THU
NISL@THU
Attack and Defense Labs
Attack and Defense Labs
Help Net Security
Help Net Security
Cisco Talos Blog
Cisco Talos Blog
月光博客
月光博客
IT之家
IT之家
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
Hugging Face - Blog
Hugging Face - Blog

博客园 - 幽冥狂_七

vue2 中把页面导出pdf Nuxt 文档 gird 布局合并了行和列 原位置不动 SemanticKernel Stable diffusion语法 Cosyvoice本地部署指令文档 CSS实现点击翻转效果 读取.net core配置文件appsetting.json内容 chromedriver版本 Sql Server触发器调用exe控制台程序 秒杀的简单例子 Vue3 Slot—插槽全家桶使用详解 转载一篇文章:专升本这场荒唐的闹剧终于结束了 单行文本过多、多文本过多出现省略号或小点点 .NET 程序员的调试神器-Dumpify vue3中使用swiper的完整版教程 highchart x轴第一个日期有省略号 highchart柱状图添加最小高度 Windows11专业版KMS命令激活(不需要激活工具) 微信小程序配置自动更新,微信小程序自动升级
记录.net8支付宝手机网页应用的过程
幽冥狂_七 · 2024-07-09 · via 博客园 - 幽冥狂_七

1、使用 开发文档(V3版) 

https://opendocs.alipay.com/open-v3/05w4kr?pathHash=8fb996ac

2、.net版本的sdk

https://opendocs.alipay.com/open-v3/065bsc

3、通过命令安装

不要看这个 https://www.nuget.org/packages/AlipaySDKNet.OpenAPI

NuGet Gallery | AlipaySDKNet.Standard 4.9.182

#不可用 命令:dotnet add package AlipaySDKNet.OpenAPI --version 2.4.0

命令:

dotnet add package AlipaySDKNet.Standard --version 4.9.182

可用:

不可用:

4、现在新版本的生成密钥工具默认支持java的,非java的需要自己转一下,坑啊(重要!!

      密钥工具下载 - 支付宝文档中心 (alipay.com)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

注意:使用密钥工具生成的私钥要转一下才能用(格式转换),其他的证书什么的都不要动。

如果你感觉很乱,不要慌我也感觉很乱,经过不断摸索后来终于发现了  手机网站证书版本的 完整demo

 public string AliPayInfo3()
 {

     string directoryPath = Environment.CurrentDirectory;

     /** 支付宝网关 **/
     String ALIPAY_GATEWAY = "https://openapi.alipay.com/gateway.do";

     /** 应用id,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/190/201602493024 **/
     String APP_ID = "202166666666415";

     /** 应用私钥,密钥格式为pkcs1,如何获取私钥请参考:https://opensupport.alipay.com/support/helpcenter/207/201602469554  **/
     String PRIVATE_KEY = "MIIEpAIBAAKCAQ 不可能放出来的==";

     /** 设置证书相关参数 **/
     CertParams certParams = new CertParams();
      

     /** 应用公钥证书路径,下载后保存位置的绝对路径  **/
     certParams.AppCertPath = directoryPath + "/wwwroot/alipayCert/appCertPublicKey_2021004156672664.crt";

     /** 支付宝公钥证书路径,下载后保存位置的绝对路径 **/
     certParams.AlipayPublicCertPath = directoryPath + "/wwwroot/alipayCert/alipayCertPublicKey_RSA2.crt";

     /** 支付宝根证书路径,下载后保存位置的绝对路径 **/
     certParams.RootCertPath = directoryPath + "/wwwroot/alipayCert/alipayRootCert.crt";

     /**初始化 **/
     IAopClient client = new DefaultAopClient(ALIPAY_GATEWAY, APP_ID, PRIVATE_KEY, "json", "1.0", "RSA2", "utf-8", "false", certParams);

     /** 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.wap.pay(手机网站支付接口) **/
     AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();

     request.BizContent = "{" +
         /** 商户订单号,商户自定义,需保证在商户端不重复,如:20200612000001 **/
         "\"out_trade_no\":\"20200612000001\"," +

         /** 销售产品码,固定值:QUICK_WAP_WAY **/
         "\"product_code\":\"QUICK_WAP_WAY\"," +

         /** 订单标题 **/
         "\"subject\":\"订单标题\"," +

         /** 订单金额,精确到小数点后两位 **/
         "\"total_amount\":0.01," +

         /** 业务扩展参数 **/
         //"\"extend_params\":{" + 
         /** 系统商编号,填写服务商的PID用于获取返佣,返佣参数传值前提:传值账号需要签约返佣协议,用于isv商户。 **/
         //"\"sys_service_provider_id\":\"20885***560335\"," + 

         /** 花呗分期参数传值前提:必须有该接口花呗收款准入条件,且需签约花呗分期 **/
         /** 指定花呗分期可选期数,只支持3/6/12期,还款期数越长手续费越高 **/
         //"\"hb_fq_num\":\"3\"," +

         /** 指定花呗分期手续费承担方式,手续费可以由用户全承担(该值为0),也可以商户全承担(该值为100),但不可以共同承担,即不可取0和100外的其他值 **/
         //"\"hb_fq_seller_percent\":\"100\"" +
         //"}," +

         /** 订单描述 **/
         "\"body\":\"订单描述\"" +
     "}";


     /**注:支付结果以异步通知为准,不能以同步返回为准,因为如果实际支付成功,但因为外力因素,如断网、断电等导致页面没有跳转,则无法接收到同步通知;**/
     /** 支付完成的跳转地址,用于用户视觉感知支付已成功,传值外网可以访问的地址,如果同步未跳转可参考该文档进行确认:https://opensupport.alipay.com/support/helpcenter/193/201602474937 **/
     request.SetReturnUrl("");

     /** 异步通知地址,以http或者https开头的,商户外网可以post访问的异步地址,用于接收支付宝返回的支付结果,如果未收到该通知可参考该文档进行确认:https://opensupport.alipay.com/support/helpcenter/193/201602475759 **/
     request.SetNotifyUrl("");

     /** 调用SDK生成form表单 **/
     AlipayTradeWapPayResponse response = client.pageExecute(request);

     /** 调用SDK生成支付链接,可在浏览器打开链接进入支付页面 **/
     //AlipayTradeWapPayResponse response = client.pageExecute(request,"","","GET");

     /**第三方调用(服务商模式),传值app_auth_token后,会收款至授权token对应商家账号,如何获传值app_auth_token请参考文档:https://opensupport.alipay.com/support/helpcenter/79/201602494631 **/
     //AlipayTradeWapPayResponse response = client.pageExecute(request,"","传入获取到的app_auth_token值","GET")

     /** 获取接口调用结果,如果调用失败,可根据返回错误信息到该文档寻找排查方案:https://opensupport.alipay.com/support/helpcenter/93 **/
     Console.WriteLine(response.Body);

     return response.Body;
 }

到这里就差不多了,会输出一个from表单。