shy

科技由你创新 未来任你掌握
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

支付模块提交xml数据

Posted on 2008-11-19 16:25  suhanyu  阅读(2137)  评论(5编辑  收藏  举报

        工作需要,做美国的在线支付系统,有两种模式,一种是PayPal支付,另一种是信用卡支付。PayPal支付将支付的表单数据提交到指定的IPN,由IPN处理并提供相应的页面,信用卡支付包括单个支付和包月的支付,包月支付既每个月自动的从账户上划钱,如果用户不取消,将一直支付下去。

        这两种支付,都有测试环境,在测试环境上调通了,正式环境就可走通,具体的测试环境可自行上网查找。

        两种的支付的关键就是如何向指定的网关提交数据,并接收网关返回的数据,提交的数据一种是表单,一种是xml,用到了一个很实用的方法,如下:      

PostXML

 

   传递网关url和指定参数的字符串,就能将信息提交到网关,并返回结果信息。返回的结果,有的是字符串列表,按指定的字符截开,有的是返回一个特定的xml,,这里介绍一个在xml中,输入开始标记和结束标记就可以获取文本的方法,如下:

 

 //write by :suhanyu 
private string PraseResponseXml(string conents, string start, string end)
    
{
        
if (conents.IndexOf(start) == 0 || conents.IndexOf(end) == 0)
        
{
            
return "";
        }

        
else
        
{
            
int start_position = conents.IndexOf(start) + start.Length;
            
int end_position = conents.IndexOf(end);

            
if (start_position != -1 && end_position != -1)
            
{

                
return conents.Substring(start_position, end_position - start_position);
            }

            
else
            
{
                
return "";
            }

        }

    }

 

调用:

 

  string refId = this.PraseResponseXml(xmlcode, "<refId>""</refId>");
  
//xmlcode为xml格式的字符串

 

做过该方面的再复习下,没做过的学习下 。。。呵呵。。。