重庆双八自助建设网站,车之家汽车报价2022官网,二级建造师建设云网站,上海做网站哪家正规自己学习使的 仅供参考 一、打开蚂蚁金服开放平台 找到研发服务-沙箱应用 设置沙箱应用保证可以使用 二、找到sdkdemo下载放到本地环境并改名为alipay配置里面的config 注释有详细的讲解仔细看 三、#xff08;这里是我的习惯#xff09;放到laravel的app下 四、去confi… 自己学习使的 仅供参考 一、打开蚂蚁金服开放平台 找到研发服务-沙箱应用 设置沙箱应用保证可以使用 二、找到sdkdemo下载放到本地环境并改名为alipay配置里面的config 注释有详细的讲解仔细看 三、这里是我的习惯放到laravel的app下 四、去config下面新建一个alipay.php将本地修改好的config放到中间 五、复制alipay/pagepay里面的pagepay.php代码到自己的支付方法里面需要修改发生错误的顺序没分先后 1、出现一个AopCline的一个each的错误这个一般是laravel5.以上才会发生 修改为 foreach ($para_temp as $key$val) {if (false $this-checkEmpty($val)) {//$val $this-characet($val, $this-postCharset);$val str_replace(,apos;,$val);//$val str_replace(\,quot;,$val);$sHtml. input typehidden name.$key. value.$val./;}}2.出现一个encrypt或者decrypt冲突的错误(因为laravel自带encrypt和decrypt方法)修改alipay/aop/AopEncrypt.php的方法名即可 如
*** 加密方法* param string $str* return string*/function alipay_encrypt($str,$screct_key){//AES, 128 模式加密数据 CBC$screct_key base64_decode($screct_key);$str trim($str);$str addPKCS7Padding($str);$iv mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);return base64_encode($encrypt_str);
}/*** 解密方法* param string $str* return string*/function alipay_decrypt($str,$screct_key){//AES, 128 模式加密数据 CBC$str base64_decode($str);$screct_key base64_decode($screct_key);$iv mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);$encrypt_str trim($encrypt_str);$encrypt_str stripPKSC7Padding($encrypt_str);return $encrypt_str;}3.会出现一个AlipayTradePagePayContentBuilder()错误 找到这个位置前面加个\
到这里基本就结束了 附上自己测试代码 //支付方法public function pay($order_id){require_once app_path(Packages/alipay/pagepay/service/AlipayTradeService.php);require_once app_path(Packages/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php);$config config(alipay);//商户订单号商户网站订单系统中唯一订单号必填$out_trade_no date(YmdHis).rand(50,200).Str::random(10);//订单名称必填$subject trim(go团队测试);//付款金额必填$total_amount rand(10,100);//商品描述可空$body ;//构造参数$payRequestBuilder new \AlipayTradePagePayContentBuilder();$payRequestBuilder-setBody($body);$payRequestBuilder-setSubject($subject);$payRequestBuilder-setTotalAmount($total_amount);$payRequestBuilder-setOutTradeNo($out_trade_no);$aop new \AlipayTradeService($config);/*** pagePay 电脑网站支付请求* param $builder 业务参数使用buildmodel中的对象生成。* param $return_url 同步跳转地址公网可以访问* param $notify_url 异步通知地址公网可以访问* return $response 支付宝返回的信息*/$response $aop-pagePay($payRequestBuilder,$config[return_url],$config[notify_url]);//输出表单var_dump($response);}4、同步跳转 //同步跳转public function success(){//引入配置文件$config config(alipay);//引入ALipayTradeService文件require_once app_path(Packages/alipay/pagepay/service/AlipayTradeService.php);//接到支付宝同步跳转所返回的所有值 都将验签使用$arr $_GET;//实例化AlipayTradeService 前面加个\ 传配置文件过去$alipaySevice new \AlipayTradeService($config);//调用验签方法 这里特别说明一下 如果验签失败。请去AlipayTradeService文件中找到check方法做一下修改$ischeck $alipaySevice-check($arr);//判断验签是否成功if($ischeck){//成功跳转到订单成功页面 用于提示用户return view(order.success);}else{//验签失败echo fail;}}