支付宝服务端如何接收通知及验签?-云顶集团3118

支付宝服务端如何接收通知及验签?

支付宝服务端如何接收通知及验签

以支付接口接收通知并处理为例。

java 调用示例

java 异步验签示例

//获取支付宝post过来反馈信息 
    map< string , string > params = new hashmap < string , string > ();
    map requestparams = request.getparametermap();
    for(iterator iter = requestparams.keyset().iterator();iter.hasnext();){
   string name = (string)iter.next();
   string[] values = (string [])requestparams.get(name);
   string valuestr = "";
   for(int i = 0;i < values.length;i    ){
    valuestr =  (i==values.length-1)?valuestr   values [i]:valuestr   values[i]   ",";
   }
   //乱码解决,这段代码在出现乱码时使用。 
   //valuestr = new string(valuestr.getbytes("iso-8859-1"), "utf-8"); 
   params.put (name,valuestr);
    }
    //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。 
    //boolean alipaysignature.rsacheckv1(map params, string publickey, string charset, string sign_type) 
    boolean flag = alipaysignature.rsacheckv1 (params,alipaypublickey, "utf-8","rsa2");

java异步验签示例(证书)

//获取支付宝post过来反馈信息 
   map params = new hashmap();
   map requestparams = request.getparametermap();
   for (iterator iter = requestparams.keyset().iterator(); iter.hasnext ();) {
    string name =  ( string )iter.next();
    string[] values = (string[])requestparams.get(name);
    string valuestr="";
    for(int i = 0;i < values.length; i  ){
    valuestr = (i== values.length-1)?valuestr values[i]:valuestr values[i]   ",";
    }
   //乱码解决,这段代码在出现乱码时使用。 
   //valuestr = new string(valuestr.getbytes("iso-8859-1"), "utf-8"); 
   params.put(name,valuestr);
    }
   //切记alipaypubliccertpath是支付宝公钥证书路径,请去open.alipay.com对应应用下载。 
   //boolean alipaysignature.rsacertcheckv1(map params, string publickeycertpath, string charset,string signtype) 
   boolean flag = alipaysignature.rsacertcheckv1(params,alipaypubliccertpath,"utf-8","rsa2");

php 调用示例

php异步验签示例

php语言公钥与公钥证书验签方法相同。
$aop = new aopclient;
$aop->alipayrsapublickey = '请填写支付宝公钥/支付宝公钥证书路径';
$flag = $aop->rsacheckv1($_post, null, "rsa2");

c#调用示例

c#异步验签示例

验签方法中 keyfromfile 必传 false,否则验签失败。

// 获 取 支 付 宝 post 过 来 通 知 消 息 , 并 以 “参 数 名 = 参 数 值 ” 的 形 式 组 成 数 组 
 // request 回 来 的 信 息 组 成 的 数 组 
  public dictionary getrequestpost()
 {
    int  i = 0 ;
    idictionary sarray = new idictionary();
    namevaluecollection coll;
    // load  form  variables  into  namevaluecollection  variable . 
    coll = request.form ;
    //get names of all forms into a string array . 
    string[] requestitem = coll.allkeys;
    for (i = 0;i < requestitem.length ; i  )
   {
      sarray.add( requestitem[i], request.form[requestitem[i]]);
    }
    return sarray ;
 }
  // 切 记 alipaypublickey 是 支 付 宝 的 公 钥 , 请 去 open .alipay .com 对 应 应 用 下 查 看 。 
  // bool  rsacheckv1 ( idictionary < string , string >  parameters , string  alipaypublickey , string  charset , string  signtype , bool  keyfromfile )
  bool flag = alipaysignature.rsacheckv1(getrequestpost(),alipaypublickey,"utf-8","rsa2",false);

c#异步验签示例(证书)

// 获 取 支 付 宝 post 过 来 通 知 消 息 , 并 以 “参 数 名 = 参 数 值 ” 的 形 式 组 成 数 组 
    // request 回 来 的 信 息 组 成 的 数 组 
     public dictionary getrequestpost()
    {
       int  i = 0 ;
       idictionary sarray = new idictionary();
       namevaluecollection coll;
       // load  form  variables  into  namevaluecollection  variable . 
       coll = request.form ;
       //get names of all forms into a string array . 
       string[] requestitem = coll.allkeys;
       for (i = 0;i < requestitem.length ; i  )
      {
         sarray.add( requestitem[i], request.form[requestitem[i]]);
       }
       return sarray ;
    }
     // 切 记 alipaypubliccertpath 是 支付宝公钥证书路径 , 请 去 open .alipay .com 对 应 应 用 下 查 看 。 
     // bool  rsacheckv1 ( idictionary < string , string >  parameters , string  alipaypubliccertpath , string  charset , string  signtype)
  bool flag = alipaysignature.rsacertcheckv1(dics, alipaypubliccertpath, "utf-8", "rsa2");

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/13804/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年12月1日 上午10:38
下一篇 2022年12月1日 上午10:40

相关推荐

网站地图