支付宝小程序(支付、手机号解密、获取Token、模版消息、支付异步通知、退款、订单查询)

1.0.0 2023-07-26 08:35 UTC

This package is auto-updated.

Last update: 2024-10-18 05:16:00 UTC


README

GitHub forks GitHub forks GitHub forks

安装

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

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']);

退款

$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']//平台订单号
}