支付宝老是报 ALI38173 错误
$aop = new \AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作,都在这个类里面
$aop->gatewayUrl = $config['url'];//"https://openapi.alipay.com/gateway.do";
$aop->appId = $config['appid'];//"app_id";
$aop->rsaPrivateKey = $config['rsaPrivateKey'];//'请填写开发者私钥去头去尾去回车,一行字符串';
$aop->format = "JSON";
$aop->charset = "UTF-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = $config['alipayrsaPublicKey'];//'请填写支付宝公钥,一行字符串';
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
$request = new \AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent = json_encode(
array(
'body'=>$body,
'subject'=>$title,
'out_trade_no'=>$order,//此订单号为商户唯一订单号
'total_amount'=> $price,//保留两位小数
'product_code'=>'QUICK_MSECURITY_PAY'
)
);
$request->setNotifyUrl("http://dds.zkd.com/index.php/Api/Alipay/notify_url"); //商户外网可以访问的异步地址
$request->setBizContent($bizcontent);
//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
echo htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。
返回的是
alipay_sdk=alipay-sdk-php-20161101&app_id=2016082100307743&biz_content=%7B%22body%22%3A%22%5Cu6d4b%5Cu8bd5%5Cu7684%5Cu4e1c%5Cu897f%22%2C%22subject%22%3A%22%5Cu4ea7%5Cu54c1%5Cu8d2d%5Cu4e70%22%2C%22out_trade_no%22%3A%222012112107%22%2C%22total_amount%22%3A%221.00%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&charset=UTF-8&format=JSON&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fds.zkd.com%2Findex.php%2FApi%2FAlipay%2Fnotify_url&sign_type=RSA2×tamp=2017-12-28+20%3A28%3A25&version=1.0&sign=
签名sign为空
我看网上很多这个步骤都有sign的
具体怎么做大神