网站制作一般哪家好,计算机网络技术招聘信息,网站建设网站建设公司,如何做设计师个人网站无意中翻了翻旧日的代码#xff0c;原来在上一次交易签名无效的问题仅仅是出现在一个调用的问题上#xff0c;merchantProperties.php被调用了两次#xff0c;当第一次被调用的时候是正确加载的#xff0c;而在第二次调用的时候出就会出现参数丢失的现象#xff0c;正因为… 无意中翻了翻旧日的代码原来在上一次交易签名无效的问题仅仅是出现在一个调用的问题上merchantProperties.php被调用了两次当第一次被调用的时候是正确加载的而在第二次调用的时候出就会出现参数丢失的现象正因为这样加上session或其它全局方式则不会出现此问题而不是编码问题。 yeepayCommon.php ?phpinclude merchantProperties.php;/* * Description 易宝支付产品通用接口范例 * V3.0 * Author rui.xin */ # 产品通用接口正式请求地址 $reqURL_onLine https://www.yeepay.com/app-merchant-proxy/node; # 产品通用接口测试请求地址 #$reqURL_onLine http://tech.yeepay.com:8080/robot/debug.action; # 业务类型 # 支付请求固定值Buy . $p0_Cmd Buy; # 送货地址 # 为1: 需要用户将送货地址留在易宝支付系统;为0: 不需要默认为 0. $p9_SAF 0; #签名函数生成签名串function getReqHmacString($p2_Order,$p3_Amt,$p4_Cur,$p5_Pid,$p6_Pcat,$p7_Pdesc,$p8_Url,$pa_MP,$pd_FrpId,$pr_NeedResponse){ global $p0_Cmd; global $p9_SAF; include merchantProperties.php; #进行签名处理一定按照文档中标明的签名顺序进行 $sbOld ; #加入业务类型 $sbOld $sbOld.$p0_Cmd; #加入商户编号 $sbOld $sbOld.$p1_MerId; #加入商户订单号 $sbOld $sbOld.$p2_Order; #加入支付金额 $sbOld $sbOld.$p3_Amt; #加入交易币种 $sbOld $sbOld.$p4_Cur; #加入商品名称 $sbOld $sbOld.$p5_Pid; #加入商品分类 $sbOld $sbOld.$p6_Pcat; #加入商品描述 $sbOld $sbOld.$p7_Pdesc; #加入商户接收支付成功数据的地址 $sbOld $sbOld.$p8_Url; #加入送货地址标识 $sbOld $sbOld.$p9_SAF; #加入商户扩展信息 $sbOld $sbOld.$pa_MP; #加入支付通道编码 $sbOld $sbOld.$pd_FrpId; #加入是否需要应答机制 $sbOld $sbOld.$pr_NeedResponse; logstr($p2_Order,$sbOld,HmacMd5($sbOld,$merchantKey)); return HmacMd5($sbOld,$merchantKey); } function getCallbackHmacString($r0_Cmd,$r1_Code,$r2_TrxId,$r3_Amt,$r4_Cur,$r5_Pid,$r6_Order,$r7_Uid,$r8_MP,$r9_BType){ include merchantProperties.php; #取得加密前的字符串 $sbOld ; #加入商家ID $sbOld $sbOld.$p1_MerId; #加入消息类型 $sbOld $sbOld.$r0_Cmd; #加入业务返回码 $sbOld $sbOld.$r1_Code; #加入交易ID $sbOld $sbOld.$r2_TrxId; #加入交易金额 $sbOld $sbOld.$r3_Amt; #加入货币单位 $sbOld $sbOld.$r4_Cur; #加入产品Id $sbOld $sbOld.$r5_Pid; #加入订单ID $sbOld $sbOld.$r6_Order; #加入用户ID $sbOld $sbOld.$r7_Uid; #加入商家扩展信息 $sbOld $sbOld.$r8_MP; #加入交易结果返回类型 $sbOld $sbOld.$r9_BType; logstr($r6_Order,$sbOld,HmacMd5($sbOld,$merchantKey)); return HmacMd5($sbOld,$merchantKey); } 第一次加载的时候是在php文件中被include 而第二次的时候是在函数里被调用大家知道在函数调用的时候存在个问题要在函数里加载到外部的变量那么就要在这个变量前加上global加以修饰global有php中并不是全局的意思。因为了解这些那说明还有另一种改法就是在被调用的merchantProperties.php文件里的变量加上global修饰就行了 merchantProperties.php ?php/* * Description 易宝支付产品通用接口范例 * V3.0 * Author rui.xin */# 商户编号p1_MerId,以及密钥merchantKey 需要从易宝支付平台获得global $website ;global $sernum ;global $keynum ; $p1_Url http://.$website;$p1_MerId $sernum; #商户号$merchantKey $keynum; #商户密钥 $logName YeePay_HTML.log; ? 或 ?php session_start();/* * Description 易宝支付产品通用接口范例 * V3.0 * Author rui.xin */# 商户编号p1_MerId,以及密钥merchantKey 需要从易宝支付平台获得$website $_SESSION[pweb] ;$sernum $_SESSION[pser] ; $keynum $_SESSION[pkey] ; $p1_Url http://.$website;$p1_MerId $sernum; #商户号$merchantKey $keynum; #商户密钥 $logName YeePay_HTML.log; ? 转载于:https://www.cnblogs.com/belie8/archive/2011/12/09/2281639.html