支付沙箱环境测试和验签

1:

2:sdk-php版

3:

public function test()   //支付方法
    {
        $arr=[
            'WIDout_trade_no'=>'20182000000000',
            'WIDsubject'=>'在线支付',
            'WIDtotal_amount'=>0.01,
            'WIDbody'=>'测试'
        ];
        session('order','00000012313213');
        $data = alipay($arr, 'http://dengpq.cn/pay', 'http://dengpq.cn/pay');
        dump($data);
        die;
    }

function alipay($post,$notify_url,$return_url){   //common中
        $config = Config('alipay');
        $arr=[
            'app_id'=>$config['app_id'],
            'merchant_private_key'=>$config['merchant_private_key'],
            'notify_url'=>$notify_url,
            'return_url'=>$return_url,
            'charset'=>$config['charset'],
            'sign_type'=>$config['sign_type'],
            'gatewayUrl'=>$config['gatewayUrl'],
            'alipay_public_key'=>$config['alipay_public_key']
        ];
        vendor('alipay.AlipayTradeService');
        vendor('alipay.AlipayTradePagePayContentBuilder');
        $out_trade_no = trim($post['WIDout_trade_no']);
        $subject = trim($post['WIDsubject']);
        $total_amount = trim($post['WIDtotal_amount']);
        $body = trim($post['WIDbody']);
        $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setOutTradeNo($out_trade_no);
        $aop = new \AlipayTradeService($arr);
        $response = $aop->pagePay($payRequestBuilder, $arr['return_url'], $arr['notify_url']);
        var_dump($response);
    }

'alipay' =>[    //config
        'app_id' => "app_id",
        //商户私钥
        'merchant_private_key' => "私钥",
        //编码格式
        'charset' => "UTF-8",
        //签名方式
        'sign_type'=>"RSA2",
        //支付宝网关
        'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",
        //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
        'alipay_public_key' => "公钥",
    ]

验签

$param = Request::instance()->param();
$gy = '支付宝公钥';  //不是生成的
$aop = new \AopClient();
$aop->alipayrsaPublicKey = $gy;
//此处验签方式必须与下单时的签名方式一致
 $flag = $aop->rsaCheckV1($param,$gy, "RSA2");

//$flag等于true签名一致   echo 'success';
      
    }

sdk地址https://gitee.com/dengpq/mail/tree/master/Thinkphp5%E6%94%AF%E4%BB%98%E5%AE%9Dsdk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章