支付沙箱環境測試和驗籤

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

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