(APP)支付宝支付PHP

2019-04-18  本文已影响0人  无聊的电风扇

首先在蚂蚁金服开放平台生成你得商户私钥,和支付宝公钥,文档里有对应的工具

image.png
一定注意,你代码中用到的是支付宝公钥,后面那个,这个是要你先上传开发者公钥,阿里自己给你生成的支付宝公钥,不要搞混!!

然后可以用支付宝的SDK,也可以自己写,一些签名和请求的方法,以他们的demo为例
加密方式用RSA2,新的应用已经不再支持MD5和RSA了

$aop = new \AopClient();
        
        $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
        $aop->appId = $aliConfig['app_id'];//appid
        $aop->rsaPrivateKey = $aliConfig['merchant_private_key'];//私钥
        $aop->format = "json";
        $aop->charset = "UTF-8";
        $aop->signType = "RSA2";
        $aop->alipayrsaPublicKey = $aliConfig['alipay_public_key'];//公钥,支付宝公钥!
        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
        $request = new \AlipayTradeAppPayRequest();
        //业务参数
        $bizcontent = "{\"body\":\"订单标题\"," 
                        . "\"subject\": \"内容\","
                        . "\"out_trade_no\": \"".自己系统的订单号."\","
                        . "\"timeout_express\": \"30m\"," 
                        . "\"total_amount\": \"".'价格(单位元)'."\","
                        . "\"product_code\":\"QUICK_MSECURITY_PAY\"" //写死
                        . "}";
        $request->setNotifyUrl($aliConfig['notify_url']);
        $request->setBizContent($bizcontent);

        //这里和普通的接口调用不同,使用的是sdkExecute
        $response = $aop->sdkExecute($request);
        //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
        $response = htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。

然后传给前台就可以了,有可能在传递的过程中,&会变成& amp; 可以自己改一下
令附一个测试工具,测试服务端签名是否有效
支付测试工具

上一篇下一篇

猜你喜欢

热点阅读