测试扫描支付功能

 1      private Dictionary<string, object> WeixinPayTest(string body, string attach, string out_trade_no, int total_fee, long product_id)
 2         {
 3             string url = "http://spdbapi.ulopay.com/pay/unifiedorder";//浦发银行测试获取支付二维码地址
 4             Dictionary<string, object> dict = new Dictionary<string, object>();
 5             string userip = System.Web.HttpContext.Current.Request.UserHostAddress;//获取用户IP
 6             if (userip == "::1")
 7             {
 8                 userip = "127.0.0.1";
 9             }
10
11             Dictionary<string, string> dicts = new Dictionary<string, string>();
12             dicts.Add("body", "测试购买商品");//说明
13             dicts.Add("mch_id", "26206409");//商户号
14             dicts.Add("nonce_str", "ibuaiVcKdpRxkhJA");//随机数,不能超过32位
15             dicts.Add("notify_url", "http://www.baidu.com/");//支付完返回地址
16             dicts.Add("out_trade_no", out_trade_no);//订单号
17             dicts.Add("spbill_create_ip", userip);
18             dicts.Add("total_fee", "1");//支付金额
19             dicts.Add("trade_type", "trade.weixin.native");//类型,这里是微信二维码扫描
20             //生成签名
21             StringBuilder str = new StringBuilder();
22             str.Append("body=测试购买商品");//商品或支付单简要描述
23             str.Append("&mch_id=26206409");//商户号ID
24             str.Append("&nonce_str=ibuaiVcKdpRxkhJA");//随机数,不能超过32位
25             str.Append("&notify_url=http://www.baidu.com/");
26             str.Append("&out_trade_no=" + out_trade_no);
27             str.Append("&spbill_create_ip=" + userip);
28             str.Append("&total_fee=1");
29             str.Append("&trade_type=trade.weixin.native");
30             str.Append("&key=e5ffcbcede5216753749a976ccef4202");//key
31             string sign = BLL.Common.Utils.MD5(str.ToString());
32             dicts.Add("sign", sign.ToUpper());
33             //制作简单xml
34             StringBuilder sb = new StringBuilder();
35             sb.Append("<xml>");
36             foreach (var k in dicts)
37             {
38                 sb.Append("<" + k.Key + ">" + k.Value + "</" + k.Key + ">");
39             }
40             sb.Append("</xml>");
41             string data = sb.ToString();
42             WebRequestHelper req = new WebRequestHelper(url, data, Encoding.GetEncoding("utf-8"));
43             req.Accept = "application/xml";
44             req.ContentType = "application/xml;charset=utf-8";//输出xml格式和utf-8
45             string res = req.PostRequest();//获取放回值
46             if (res == "")
47                 return null;
48             NameValueCollection list = GetXmlFieldList(res);//把返回的xml转换为键值对形式
49             if (list["return_code"] == "SUCCESS" && list["result_code"] == "SUCCESS")
50             {
51                 dict.Add("url", "/pay/GetPayQRCode.ashx?data=" + Web.UI.Fun.Utils.DESEncrypt(list["code_url"]));
52                 dict.Add("code", 0);
53             }
54
55             return dict;
56         }
57
58         private NameValueCollection GetXmlFieldList(string res)
59         {
60             XmlDocument doc = new XmlDocument();
61             doc.LoadXml(res);
62             XmlNode root = doc.SelectSingleNode("xml");
63             if (root == null) return null;
64
65             NameValueCollection list = new NameValueCollection();
66             foreach (XmlNode node in root.ChildNodes)
67             {
68                 list.Add(node.Name, node.InnerText);
69             }
70             return list;
71         }

接着使用生成二维码展示出来,使用第三方插件QRCode

 1        Web.UI.Request request = new UI.Request(true);
 2             string data = request.QueryString("data");
 3             if (string.IsNullOrEmpty(data))
 4             {
 5                 return;
 6             }
 7
 8             try
 9             {
10                 data = Utils.DESDecrypt(data);
11                 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
12                 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
13                 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
14                 qrCodeEncoder.QRCodeVersion = 4;
15                 qrCodeEncoder.QRCodeScale = 6;
16
17                 Image image = qrCodeEncoder.Encode(data, Encoding.Default);
18                 System.IO.MemoryStream ms = new System.IO.MemoryStream();
19                 image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
20                 context.Response.ClearContent();
21                 context.Response.ContentType = "image/Jpeg";
22                 context.Response.BinaryWrite(ms.ToArray());
23                 context.Response.End();
24             }
25             catch (Exception ex)
26             {
27
28             }

原文地址:https://www.cnblogs.com/huodetiantang/p/9105760.html

时间: 2024-10-29 18:52:57

测试扫描支付功能的相关文章

带有支付功能的产品如何进行测试

软件测试人员在进行测试的时候,根据测试项目或者测试对象的不同,会采用不同的方式方法来进行测试,那么,带有支付功能的产品该如何测试呢?在测试过程中又应该注意些什么?        财务人员有句老话叫:财务无小事.因为,首先,任何涉及到财务的问题,不论金额有多么的小,它在性质上也是严重事件:其次,在各种金融支付功能已深入老百姓生活的方方面面的今天,一个程序中,哪怕仅有一个小小的支付问题,那么,最后引起的也可能是涉及成百上千乃至上亿元金额和大量用户的大问题.        因此,专业的测试人员,在对待

在线支付功能的设计及其实现

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52154672作者:朱培      ID:sdksdk0      邮箱: [email protected]   ------------------------

如何Android中加入扫描名片功能

要想实现android手机通过扫描名片,得到名片信息,可以使用脉可寻提供的第三方SDK,即Maketion ScanCard SDK,脉可寻云名片识别服务.他们的官方网站为http://www.maketion.com/. 一.概述 Maketion ScanCardSDK(以下简称SDK)是提供给第三方合作伙伴接入脉可寻云名片识别服务,合作伙伴需要先申请key和secure才可以使用. SDK不能独立运行,使用时需要嵌入到Android的Project中. SDK支持Android2.1版本及

ecshop增加pc扫描二维码微信支付功能代码

ecshop开发网站,如果没有手机版,又想通过微信支付,可以加入pc二维码扫描微信支付功能 工具/原料 ecshop商城系统,phpqrcode,WxPayPubHelper 公众号已申请微信支付 方法/步骤 使用PHP QR Code生成二维码,下载,在商品支付页面加入 include 'phpqrcode/phpqrcode.php'; $pay_url ='http://www.xxx.com/weixin/weixin.php?order_id='.$order['order_sn'];

互联网产品接入支付功能如何测试?

互联网产品接入支付功能如何测试? 现在有不少测试朋友做的项目中,可能也会涉及到支付相关的功能.比如:做商城的,做游戏的以及其他在线交易的网站.APP等.如果支付出了问题,或者用户拿少的钱通过篡改请求数据购买大金额的商品,如果是实物的话,发货前还有可能被发现.如果是虚拟商品话费.游戏币等就有可能造成损失. 所以,不管是实物也好,虚拟商品也好,涉及到支付功能时,大家在测试的过程中一定要重视,否则,会造成很大损失.之前可能大家也都看到过或者听过一个bug损失4.6亿美金的惨痛教训或者身边也有发生过其他

互联网产品接入支付功能如何测试?__(支付功能网上搜集资料)

那么,问题来了,对于支付模块的相关测试,我们应该如何进行呢?比如,针对游戏来说,使用第三方支付往游戏充值游戏币功能,看起来是不是很简单,大家主要思考下以下内容: 1.支付都是与第三方支付(支付宝.微信.财付通.QQ钱包.短信支付等)进行对接,那么,是否了解了第三方接口有哪些?是否都能清楚我们的产品与第三方是如何交互的?是否能画出流程图? 2.异常场景有哪些? 3.有哪些风险,如何规避? 第三方支付的流程,与商户的对接方式基本相似,大同小异.(题外推荐:如下流程图使用的chrome插件:Gliff

【Java EE 学习 21 下】【 使用易宝支付接口实现java网上支付功能】

一.网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付. 1.直接和银行对接. 2.使用第三方支付平台 3.常见的第三方支付平台 二.使用易宝支付接口实现java网上支付功能(农业银行). 1.完整源代码:https://github.com/kdyzm/day21_2_pay 2.实现过程的时序图 3.技术要点 (1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表 (2)使用PaymentUtil类实现

调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)转

这次在项目中要实现订单功能,所以要完成在线支付,在线支付一般有网银支付和第三方支付(支付宝.paypal等)这两种途径,未简单起见,先完成支付宝在线支付功能,使用UTF-8编码 在正式测试之前,先准备好几个字段:支付宝帐号,与该支付宝帐号绑定的合作身份者id以及安全校验码key. 测试之前要先下载最新的相关接口,因为我用到的是即时支付功能,所以下载即时支付接口. 下载完成后解压该文档到指定文件夹,进入所需接口目录create_direct_pay_by_user-PHP-UTF-8: creat

如何玩转微信支付功能的原理和开发(转)

打开微信,各种营销信息霸占了我的眼球,以“微信支付+微信小店”的模式挑战阿里“支付宝+淘宝天猫”的模式开启了新纪元,腾讯此举是在革淘宝的命吗?有人说,微信对阿里最大的挑战,是把连接能力下发给了企业/用户,让企业/用户而不是平台自身发挥主动权和能动性来建立新的连接模式. 近年来,移动支付发展迅猛,移动支付已经成为了不可抵挡的发展趋势,其引领了新一轮的支付潮流.从某种角度来讲,反观移动互联网的迅速发展,对微信的快速发展起到了很大的推动力,其所蕴含的巨大潜力使其成为了市场争相抢夺的香饽饽.一时间各种支