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

GitHub forks GitHub forks GitHub forks

如需多个小程序可查看我的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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
10
粉丝
3
喜欢
20
收藏
67
排名:1172
访问:3867
私信
所有博文
社区赞助商