支付宝的接口调用很不方便,刚做好一个封装,实现了虚拟交易和实物交易。
解决方案中有三个项目以及NDoc生成的文档,简单的序列图:CommonAliPay,封装的支付宝接口。 TestAli,asp.net的测试项目 TestCommonAliPay,Nunit的测试项目。 调用方法: 1、引入CommonAliPay.dll 2、实现支付宝服务接口的方法调用方式: AliPay ap = new AliPay(); string key = "";//填写自己的key string partner = "";//填写自己的Partner StandardGoods bp = new StandardGoods("trade_create_by_buyer", partner, key, "MD5", "卡2", Guid.NewGuid().ToString(), 2.551m, 1, "hao_ding2000@yahoo.com.cn", "hao_ding2000@yahoo.com.cn" , "EMS", 25.00m, "BUYER_PAY","1"); bp.Notify_Url = "http://203.86.79.185/ali/notify.aspx"; ap.CreateStandardTrade("https://www.alipay.com/cooperate/gateway.do", bp, this);上面是通用的调用方式。 下面是只支持虚拟货物的方式: string key = "";//填写自己的key string partner = "";//填写自己的Partner AliPay ap = new AliPay(); DigitalGoods bp = new DigitalGoods("create_digital_goods_trade_p", partner, key, "MD5", "卡2", Guid.NewGuid().ToString(), 2.551m, 1, "hao_ding2000@yahoo.com.cn", "hao_ding2000@yahoo.com.cn"); bp.Notify_Url = "http://203.86.79.185/ali/notify.aspx"; ap.CreateDigitalTrade("https://www.alipay.com/cooperate/gateway.do", bp, this);3、实现支付宝通知接口方法的调用(支持虚拟和实物): protected void Page_Load(object sender, EventArgs e) { string key = "";//填写自己的key string partner = "";//填写自己的Partner AliPay ap = new AliPay(); string notifyid = Request.Form["notify_id"]; Verify v = new Verify("notify_verify", partner, notifyid); ap.WaitSellerSendGoods+=new AliPay.ProcessNotifyEventHandler(ap_WaitSellerSendGoods); ap.WaitBuyerPay += new AliPay.ProcessNotifyEventHandler(ap_WaitBuyerPay); ap.ProcessNotify(this, "https://www.alipay.com/cooperate/gateway.do",key,v, "utf-8"); }
void ap_WaitBuyerPay(object sender, NotifyEventArgs e) foreach (PropertyInfo pi in propertyInfos) pi.SetValue(obj, v, null); } pi.SetValue(obj, decimal.Parse(v), null); pi.SetValue(obj, DateTime.Parse(v), null); pi.SetValue(obj, bool.Parse(v), null); } } if (pi.GetValue(obj, null) != null) foreach (KeyValuePair<string, string> kvp in sortedList) |
ASP.net:支付宝接口
最新推荐文章于 2020-07-10 10:37:29 发布