以支付接口接收通知并处理为例。
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(mapparams, string publickey, string charset, string sign_type) boolean flag = alipaysignature.rsacheckv1 (params,alipaypublickey, "utf-8","rsa2");
java异步验签示例(证书)
//获取支付宝post过来反馈信息 mapparams = 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 dictionarygetrequestpost() { 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 dictionarygetrequestpost() { 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/
部分内容来自网络投稿,如有侵权联系立删