支付宝小程序支付(支付宝小程序支付使用的是支付宝app支付),同样的支付需要跳转回小程序内进行支付原理
tp方法
public function alipay(){
vendor('appalipay.AopSdk');// 加载类库
$config = array(
'appid' =>'小程序appid',//商户密钥
'rsaPrivateKey' =>'',//私钥
'alipayrsaPublicKey'=>'',//公钥
'charset'=>strtolower('utf-8'),//编码
'notify_url' =>'回调验签地址',//回调地址(支付宝支付成功后回调修改订单状态的地址)
'payment_type' =>1,//(固定值)
'seller_id' =>'支付宝账号',//收款商家账号
'charset' => 'utf-8',//编码
'sign_type' => 'RSA2',//签名方式
'timestamp' =>date("Y-m-d H:i:s"),
'version' =>"1.0",//固定值
'url' => 'https://openapi.alipay.com/gateway.do',//固定值
'method' => 'alipay.trade.app.pay',//固定值
);
//业务请求参数-订单
$body = '自定义什么就什么';
$title = '自定义什么就什么';
$price = 0.01;//支付金额(分)
$content = array();
$content['body'] = $body;
$content['subject'] = $title;// 订单标题
$content['out_trade_no'] = 订单号;//商户网站唯一订单号
$content['timeout_express'] = '1d';//该笔订单允许的最晚付款时间
$content['total_amount'] = floatval($price);//订单总金额(浮点型)
$content['seller_id'] = '支付宝账号';
$content['product_code'] = 'QUICK_MSECURITY_PAY';//销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY
$content['store_id'] = '001';//商户门店编号
$con = json_encode($content);//$content是biz_content的值,将之转化成字符串
//公共参数
$param = array();
$Client = new \AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作
$param['app_id'] = $config['appid'];//APPID
$param['method'] = $config['method'];//接口名称
$param['charset'] = $config['charset'];//请求使用的编码格式
$param['sign_type'] = $config['sign_type'];//商户生成签名字符串所使用的签名算法类型
$param['timestamp'] = $config['timestamp'];//发送请求的时间
$param['version'] = $config['version'];//调用的接口版本,固定为:1.0
$param['notify_url'] = $config['notify_url'];//支付宝服务器主动通知地址
$param['biz_content'] = $con;//业务请求参数的集合json格式
//生成签名
$paramStr = $Client->getSignContent($param);
$sign = $Client->alonersaSign($paramStr,$config['rsaPrivateKey'],'RSA2');
$param['sign'] = $sign;
$str['data'] = $Client->getSignContentUrlencode($param);
return json_encode($str); // 最后生成的参数返回给小程序调起支付
}