第三方 | token | openid | 支付 | 回调 | 退款 | 订单查询 | 解密手机号 | 分账 | 模版消息 |
---|---|---|---|---|---|---|---|---|---|
支付宝小程序 | x | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | x | ✓ |
composer require code-lives/ali 1.0.0
金额单位分 100=1 元
返回结果 array 由开发者自行判断
//引入命名空间
use Applet\Assemble\Ali;
// 小程序下单
$pay= Ali::init($config)->set("订单号","金额","描述",'openid')->getParam();
使用密钥进行签名解密,没有使用证书签名解密。
订单查询、退款、参数设置可以设置其他,具体看文档。
返回值 看官方文档,每个返回值都不一样,自行判断,如 openid 返回[alipay_system_oauth_token_response] 退款返回[alipay_trade_create_response]
参数名字 | 类型 | 必须 | 说明 |
---|---|---|---|
appid | string | 是 | 小程序 appid |
secret | string | 是 | 小程序 AES 用于手机号解密 |
privateKey | string | 是 | 应用私钥(开发工具生成) |
publicKey | string | 是 | 支付宝公钥(支付宝后台下载) |
notify_url | string | 是 | 异步回调地址 |
getOpenid 获取支付宝的用户 user_id 类似于微信的 openid
$code="";
$data= Ali::init($config)->getOpenid($code);
//返回参数
$data = array(
[alipay_system_oauth_token_response] => Array
(
[access_token] => 123
[alipay_user_id] => 123
[auth_start] => 2023-03-26 20:56:36
[expires_in] => 1296000
[re_expires_in] => 2592000
[refresh_token] => auth
[user_id] => 123
)
[sign] =>
)
$data= Ali::init($config)->decryptPhone($session_key, $iv, $encryptedData);
echo $phone['mobile'];
$data = Ali::init($config)->findOrder(['out_trade_no' => '1679838318']);
参数名字 | 类型 | 必须 | 说明 |
---|---|---|---|
out_trade_no | string | 是 | 平台订单号 |
refund_amount | int | 是 | 退款金额 |
$orders = [
'out_order_no' => $order['out_order_no'],
'refund_amount' => $order['refund_amount'],
];
$data= Ali::init($config)->applyOrderRefund($order);
模版消息设置比较麻烦。需要先到开发平台添加进入小程序进行产品绑定,在去商家平台设置文档
$data = [
'to_user_id' => '用户uid',
'user_template_id' => '模版id',
'page' => 'pages/index/index',
'data' => json_encode([
'keyword1' => ['value' => '1'],
'keyword2' => ['value' => '2'],
'keyword3' => ['value' => '3'],
]),
];
$data= Ali::init($config)->sendMsg($data,$token);
$pay = Ali::init($config);
$status = $pay->notifyCheck(); //验证
if ($status) {
$order = $pay->getNotifyOrder(); //订单数据
//$order['out_trade_no']//平台订单号
}