支付宝小程序(支付、手机号解密、获取Token、支付异步通知、退款、订单查询、分账、模版消息) 
                                                    
                        
                    
                    
  
                    
                    如需多个小程序可查看我的github
| 第三方 | 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]
Config
| 参数名字 | 类型 | 必须 | 说明 | 
|---|---|---|---|
| appid | string | 是 | 小程序 appid | 
| secret | string | 是 | 小程序 AES 用于手机号解密 | 
| privateKey | string | 是 | 应用私钥(开发工具生成) | 
| publicKey | string | 是 | 支付宝公钥(支付宝后台下载) | 
| notify_url | string | 是 | 异步回调地址 | 
Openid
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']//平台订单号
}本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           code-lives 的个人博客
 code-lives 的个人博客
         
                     
                     
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: