详细说明 NET C#支付宝条码支付界面
支付宝条码支付界面供大家参考。具体内容如下
应用场景示例
收银员读取支付宝钱包的“支付码”后,将二维码或条码信息发送到支付宝,通过该界面发起支付。
SDK下载
支付宝提供三种开发语言的SDK,选择自己的开发语言下载。项目中会有很多例子。本文选择。NET2010版本。
将SDK项目中的AopSdk.dll文件引用到您自己的项目中。
支付类别代码
数据的缩写版本需要自己获取
public class to lipay bll { private static readonly to lipay dal=new to lipay dal();静态IAopClient客户端=null公共静态bool CheckValidationResult(对象发送方、x509证书、x509链链、SslPolicyErrors错误){ //直接确认,否则打不开返回真;} ///摘要///支付宝条码支付////summary///param name=' osaleh _ osalehID '/param///param name=' txtPaymentCode '付款码/param///param name='订单类型'/param///param name='用户'/param///返回/返回对GetAlipayRequestExecute的公共静态响应(string osaleh _ osalehID,string str_osaled_osaledID,string txtPaymentCode,string orderType,UsersEntity user){对resp的响应=对()的新响应;尝试{ //请根据实际请求需要商业_内容参数#区域商业内容参数orderist model order list=new orderist model();listprounddetailmodel goodsList=new listprounddetailmodel();StringBuilder param=new StringBuilder();//商户订单号字符串输出_交易_编号=系统日期时间。现在。tostring(' yyymmdhmms ')' 0000 ' osaleh _ osalehID;//商户唯一订单号订单清单。out _ trade _ no=out _ trade _ no//支付场景orderList.scene=' bar _ code//支付授权码订单清单。auth _ code=TxtPaymentcode//卖家支付宝用户ID orderList.seller _ id=//订单总金额//订单列表。总额=总额.ToString(' # 0.00 ');//商品明细字符串goodsName=字符串。空的;bool IsFlag=true foreach(OSaledList中的定义变量项){ ProductDetailmerDetailme=new ProductDetailmerMoDEL();detail MoDEL . goods _ id=' 0 detail MoDEL。goods _ name=' default细节模型。数量=((int)项。osaled _数量).ToString();细节模型。价格=项目。osaled _ amount .ToString(' # 0.00 ');detail model . goods _ category=goods list .添加(Detail MoDEL);}订单列表。商品_明细=商品清单;//订单标题订单清单。主题=好名字;//订单描述orderList.body=//商户操作员编号订单清单。operator _ id=用户。user _ employeeNo//商户门店编号orderList.store _ id=//支付宝店铺编号订单列表。支付宝_ store _ id=//机具终端编号orderList.terminal _ id=//支付超时时间字符串到期时间=系统。日期时间。现在。添加分钟(30)。ToString(' yyyy-MM-DD hh :MM :s ');订单清单。time _ expire=expire _ time#endregion biz_content参数字符串biz _ content=FormatToJson .序列化(订单清单);StoreEntity store=StoreBLL .GetStoreEntityByStore _ Code(用户。user _ company);//开发者的应用编号字符串支付宝_ appId=ConfigHelper。支付宝_merchant_private_key=字符串.格式(confighelper。支付宝_商家_私钥,商店.区号);配置助手。支付宝_公钥=字符串.格式(ConfigHelper .支付宝_public_key,商店.区号);服务点管理器.服务器证书评估回调=新系统净。保安。远程证书评估回调(CheckValidationResult);client=new DefaultAopClient(config helper。支付宝_服务器网址,支付宝_appId、ConfigHelper。支付宝_merchant_private_key、‘JSON’、ConfigHelper。支付宝_版本、ConfigHelper。支付宝_sign_type、ConfigHelper。支付宝_public_key、配置助手。支付宝_ charset);AlipayTradePayResponse payResponse=Pay(biz _ content);字符串结果=付款响应.身体;if (payResponse!=null) { switch (payResponse .code){ case to lipayresultcode .成功://支付成功//业务处理resp .消息='支付成功;resp .状态=真;打破;案例分析结果代码.inprocess ://业务处理中StringBuilder sb1=new StringBuilder();sb1 .追加(' { \ ' out _ trade _ no ' : \ ' ' out _ trade _ no ' \ ' } ');//调用查询接口需要进行轮询订单支付结果AlipayTradeQueryResponse查询响应=LoopQuery(sb1 .ToString());//用订单号贸易号进行轮询也是可以的。
if (queryResponse!=null) { if (queryResponse .代码==ToAlipayResultCode .SUCCESS) { //支付成功或交易结束if (queryResponse .TRADE status==' TRade _ SUCCESS ' | |查询响应.TradeStatus==' TRade _ FILENDED '){//业务处理resp .消息='支付成功;resp .状态=真;} else { //支付超时resp .消息='支付超时;resp .状态=假;} } else { //支付失败resp .消息='支付失败,错误代码:' queryResponse .子代码。描述:' queryResponse .子协议.状态=假;} } breakcase ToAlipayResultCode .fail : StringBuilder sb2=new StringBuilder();sb2 .追加(' { \ ' out _ trade _ no ' : \ ' ' out _ trade _ no ' \ ' } ');支付宝交易取消响应取消响应=取消(sb2 .ToString());if(!字符串IsNullOrEmpty(取消响应SubCode)) { resp .消息='支付失败,错误代码:'取消响应.子代码。描述:'取消响应.SubMsg} else { resp .消息='支付失败,错误代码:“付费响应”.子代码。描述:“付费响应”.SubMsg} //支付失败resp .状态=假;打破;} } } else { resp .消息='操作失败,未查询到订单信息,请联系管理员!resp .状态=假;} }捕获(异常ex){异常日志.ToAlipayLog(例如。消息);//记录日志resp .消息=ex .消息;resp .状态=假;}返回响应;}私有静态AlipayTradePayResponse Pay(字符串biz _ content){ AlipayTradePayRequest=new AlipayTradePayRequest();支付需求biztalk content=biz _ contentAlipayTradePayResponse payResponse=客户端。执行(付款要求);返回payResponse}私有静态支付宝交易取消响应取消(字符串biz _ content){ AlipayTradeCancelRequest cancelRequest=new AlipayTradeCancelRequest();取消请求BizContent=biz _ contentAlipayTradeCancelResponse cancelResponse=客户端。执行(取消请求);if (null!=cancelResponse){ if(cancelResponse .代码==ToAlipayResultCode .失败取消响应RetryFlag=='Y') { //新开一个线程重试撤销parametersedsthreadstart par start=new parametersedsthreadstart(cancelerrretry);Thread myThread=new Thread(ParStart);对象o=商务内容神话阅读。开始(o);} }返回cancelResponse}私有静态void cancelordertry(对象o){ int retryCount=10;for(int I=0;我重试计数;I){ 0线程。睡眠(5000);AlipayTradeCancelRequest cancelRequest=new AlipayTradeCancelRequest();取消请求biz content=o . ToString();AlipayTradeCancelResponse取消响应=客户端。执行(取消请求);if (null!=cancelResponse){ if(cancelResponse .代码==ToAlipayResultCode .失败){如果(取消响应RetryFlag==' N '){ break;} } if ((cancelResponse .代码==ToAlipayResultCode .SUCCESS)){ break;} } } }私有静态AlipayTradeQueryResponse LoopQuery(string biz _ content){ AlipayTradeQueryRequest=new AlipayTradeQueryRequest();支付需求BizContent=biz _ contentdictionary string,string paramsDict=(字典字符串,字符串)payRequst .GetParameters();AlipayTradeQueryResponse payResponse=null;for(int I=1;I=6;I){ 0线程。睡眠(5000);payResponse=客户端。执行(付款要求);如果(字符串。比较(付款响应。代码,ToAlipayResultCode .SUCCESS,false)==0) { if (payResponse .TRADE status==' TRade _ FINIED ' | |支付响应.贸易状态==' TRADE _ SUCCESS ' | |支付响应.TradeStatus=='TRADE_CLOSED') //返回付款响应打破;} } //未付款交易超时或等待超时。
if (payResponse .代码==ToAlipayResultCode .失败||支付响应TRADE status==' TRade _ CLOSED ' | |支付响应.贸易状态==' WAIT _ BUILD _ PAY '){//撤销订单StringBuilder param=new StringBuilder();帕拉姆。追加(' { \ ' out _ trade _ no \ ' : \ ' '付款响应outradeno ' \ ' } ');biz_content=param .ToString();取消(biz _ content);}返回payResponse}}前端效果图
扫描枪自动提交,可以使用输入框中的“onkeyup=()”的方法。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:详细说明 NET C#支付宝条码支付界面是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。