日期:2014-05-17  浏览次数:20833 次

受困易宝接口网上支付.
没有做过这方面,看到那个文档和开发包其中有一段代码有点无法理解。
  能够正常的付款,而且也能够正常的接受到易宝返回给我的数据,自己更新自己这边的数据库。一切都OK。
  但是发现其中一个细节。
  无法理解。
  所以希望有过这方面经验的大大能给小弟一点意见。
  易宝支付有一个页面时Callback.aspx
  是用来接受返回的数据的。
 
C# code
  if (string.IsNullOrEmpty(result.ErrMsg))
            {
                if (result.R1_Code == "1")
                {
                    if (result.R9_BType == "1")
                    {
                        //  callback方式:浏览器重定向
                        Response.Write("支付成功!<br>商品ID:" + result.R5_Pid + "<br>商户订单号:" + result.R6_Order + "<br>支付金额:" + result.R3_Amt + "<br>易宝支付交易流水号:" + result.R2_TrxId + "<BR>");
                    }
                    else if (result.R9_BType == "2")
                    {
                        // * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                        Response.Write("SUCCESS");
                    }
                }
                else
                {
                    Response.Write("支付失败!");
                }
            }
            else
            {
                Response.Write("交易签名无效!");
            }

  当 if (result.R9_BType == "1")时,易宝已经处理好数据了,所以我要做的是更新自己的数据库。然后定向到自己的处理页面。
  但是当else if (result.R9_BType == "2")时是什么意思?我用易宝提供的测试账号测试的时候,网页上显示两行字-->
  产品通用接口支付成功返回-浏览器重定向:(这里result.R9_BType == "1")
  产品通用接口支付成功返回-服务器点对点通讯:(这里是等于2) 这句话是什么意思 ?
  在等于2的时候,要我把收到成功的消息返回给易宝还是怎么 ?不明白,希望各位能告之!谢谢


------解决方案--------------------
刚才大致看了下接口文档,R9_BType 这个参数应该和发起支付请求时的pr_NeedResponse这个参数的值有关吧

如果pr_NeedResponse=1时
那么执行
else if (result.R9_BType == "2")
{
// * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
Response.Write("SUCCESS");
}
这段



------解决方案--------------------
帮顶~!
------解决方案--------------------
没用过,UP
------解决方案--------------------
学习了这两天也在研究这个
探讨
刚才大致看了下接口文档,R9_BType 这个参数应该和发起支付请求时的pr_NeedResponse这个参数的值有关吧

如果pr_NeedResponse=1时
那么执行
else if (result.R9_BType == "2")
{
// * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出……