PHPackages                             suifeng/applet-paylogin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. suifeng/applet-paylogin

ActiveLibrary[Payment Processing](/categories/payments)

suifeng/applet-paylogin
=======================

微信小程序、字节小程序、支付宝小程序（支付、手机号解密、获取Token、支付异步通知、退款、订单查询）

1.3(3y ago)5471MITPHPPHP &gt;=5.3.3

Since Sep 4Pushed 3y ago1 watchersCompare

[ Source](https://github.com/suifeng168/applet-paylogin)[ Packagist](https://packagist.org/packages/suifeng/applet-paylogin)[ RSS](/packages/suifeng-applet-paylogin/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (4)Used By (0)

### 注意事项

[](#注意事项)

微信支付使用APIv2规则 所以需要配置V2接口的密匙 不会用就看 test 目录下的示例 本项目只要是为自己服务 其他人用请自行看文档摸索 支付宝是订阅消息 不是订单消息等

安装说明
====

[](#安装说明)

```
composer require suifeng/applet-paylogin

```

功能支持
====

[](#功能支持)

第三方tokenopenid支付回调退款订单查询解密手机号订阅消息微信小程序✓✓✓✓✓✓✓✓支付宝小程序x✓✓✓✓✓✓✓字节小程序✓✓✓✓✓✓✓✓字节小程序
=====

[](#字节小程序)

### Config

[](#config)

参数名字类型必须说明saltstring是担保交易的 SALTapp\_idint是小程序的 APP\_IDsecretstring是小程序的 APP\_SECRETdebugstring是沙盒调试开关 使用为 true 不使用为falsenotify\_urlstring是支付回调 url### token

[](#token)

```
    $data= \Applet\Pay\Factory::getInstance('Toutiao')->init($config)->getToken();

```

### openid

[](#openid)

```
    $code="";//小程序传递过来的
    $data= \Applet\Pay\Factory::getInstance('Toutiao')->init($config)->getOpenid($code);
```

### 预下单

[](#预下单)

```
    $options=[
    'out_order_no'=>1,
    'total_amount'=>'2'...
    ];
    appid,valid_time 不需要传递 其他必填都必须传递
    $pay= \Applet\Pay\Factory::getInstance('Toutiao')->init($config)->createOrder($options);
```

文档地址：

### 解密手机号

[](#解密手机号)

```
    $data= \Applet\Pay\Factory::getInstance('Toutiao')->init($config)->decryptPhone($session_key, $iv, $encryptedData);
```

### 字节订单查询

[](#字节订单查询)

```
    $Toutiao = \Applet\Pay\Factory::getInstance('Toutiao')->init($config)->findOrder("订单号");

```

文档地址：

### 字节退款

[](#字节退款)

```
    $order = [
            'out_order_no' => '',
            'out_refund_no' => time(),
            'reason' => '说明 都看文档吧',
            'refund_amount' => 1, //退款金额
        ];
    $data= \Applet\Pay\Factory::getInstance('Toutiao')->init($config)->applyOrderRefund($order);

```

文档地址：

### 异步通知

[](#异步通知)

```
   $result=\Applet\Pay\Factory::getInstance('Toutiao')->init($Config)->verify();
    $msg=$result['msg'];
    if($msg['status']=='SUCCESS'){
	$msg['cp_orderno'];; //网站订单号
	$msg['channel_no']; //流水号
	$data=[
		"err_no"  =>0,
		"err_tips"=>"success",
	];
	return json_encode($data); //必须输出一个 json

}

```

文档地址：
这里如果有退款 记得要判断下 支付回调和退款回调

### 订阅消息

[](#订阅消息)

```
$token=''; //接口调用凭证access_token
$tpl_id=''; //所需下发的订阅模板id
$open_id=''; //接收者（用户）的 openid
$page='/page/index/index'; //点击模板卡片后的跳转页面
//模板内容 数组
$send_data=[
	'thing4' =>'参数1',
	'phrase5'=>'参数2'
];
$result=Applet::getInstance('Toutiao')->init($Config)->sendMessage($token,$tpl_id,$open_id,$send_data,$page);

```

微信小程序
=====

[](#微信小程序)

### Config

[](#config-1)

参数名字类型必须说明appidint是小程序 appidsecretint是小程序 secretmch\_idstring是商户 mch\_idmch\_keystring是商户 mch\_keynotify\_urlstring是异步地址cert\_pemstring是cert\_pem 证书key\_pemstring是key\_pem 证书### token

[](#token-1)

```
    $data= \Applet\Pay\Factory::getInstance('Weixin')->init($config)->getToken();

```

### openid

[](#openid-1)

```
    $code="";
    $data= \Applet\Pay\Factory::getInstance('Weixin')->init($config)->getOpenid($code);

```

### 预下单

[](#预下单-1)

```
    $options=[];
    $pay= \Applet\Pay\Factory::getInstance('Weixin')->init($config)->set($options);

```

文档地址：[https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9\_1](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1)

### 微信解密手机号

[](#微信解密手机号)

```
    $data= \Applet\Pay\Factory::getInstance('Weixin')->init($config)->decryptPhone($session_key, $iv, $encryptedData);

```

### 微信订单查询

[](#微信订单查询)

```
    $payName='Weixin';//设置驱动
    $Baidu = \Applet\Pay\Factory::getInstance('Weixin')->init($config);
    $data = $Baidu->findOrder("订单号");

```

文档地址：[https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9\_2](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2)

### 微信退款

[](#微信退款)

```
    $order = [
             'out_trade_no' => '123',
            'total_fee' => 0.01,
            'out_refund_no' => time(),
            'refund_fee' => 0.01,
        ];
    $data= \Applet\Pay\Factory::getInstance('Weixin')->init($config)->applyOrderRefund($order);

```

文档地址：[https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9\_4](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4)

### 异步通知

[](#异步通知-1)

```
   $result=\Applet\Pay\Factory::getInstance('Weixin')->init($Config)->verify();
 if($result['result_code']=='SUCCESS'&&$result['return_code']=='SUCCESS'){
	$result['out_trade_no']; //网站订单号
	$result['transaction_id']; //流水号
	$result['openid']; //支付账户
	return 'success'; //必须输出一个 success
}

```

文档地址：[https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9\_7&amp;index=8](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8)

### 订阅消息

[](#订阅消息-1)

```
$token=''; //接口调用凭证access_token
$template_id=''; //所需下发的订阅模板id
$touser=''; //接收者（用户）的 openid
$url='/page/index/index'; //点击模板卡片后的跳转页面
//模板内容 数组
$send_data=[
	'thing4' =>'参数1',
	'phrase5'=>'参数2'
];
$result=Applet::getInstance('Weixin')->init($Config)->sendMessage($token,$template_id,$touser,$url,$send_data);

```

支付宝小程序
======

[](#支付宝小程序)

### Config

[](#config-2)

参数名字类型必须说明appidint是小程序 appidscrect\_keyint是解密手机号的 AES密钥notify\_urlstring是异步回调地址debugstring是沙箱调试开关 使用沙箱设置为ture 不使用设置为falsersaPrivateKeyint是请填写开发者私钥去头去尾去回车，一行字符串alipayrsaPublicKeyint是请填写支付宝公钥，一行字符串### openid

[](#openid-2)

```
    $code="";
    $data= \Applet\Pay\Factory::getInstance('Alipay')->init($config)->getOpenid($code);
```

### 支付宝解密手机号

[](#支付宝解密手机号)

```
    $code='';
    $data= \Applet\Pay\Factory::getInstance('Alipay')->init($config)->decryptPhone($code);
```

### 预下单

[](#预下单-2)

```
    $options=[
		'out_trade_no'=>1,// 订单号
		'total_amount'=>2,// 订单金额，**单位：元**
		'buyer_id'    =>3,//支付人的 buyer_id
		'subject'     =>4,// 订单描述
	];
    $data= \Applet\Pay\Factory::getInstance('Alipay')->init($config)->createOrder($options);
```

文档地址：

### 支付宝订单查询

[](#支付宝订单查询)

```
    $options=[];//这里是数组
    $data = \Applet\Pay\Factory::getInstance('Alipay')->findOrder($options);

```

文档地址：

### 支付宝退款

[](#支付宝退款)

```
    $options=[];//这里是数组
    $data= \Applet\Pay\Factory::getInstance('Alipay')->init($config)->applyOrderRefund($options);
```

文档地址：

### 异步通知

[](#异步通知-2)

```

   $result=\Applet\Pay\Factory::getInstance('Alipay')->init($Config)->verify($_POST);
    if($result['trade_status']=='TRADE_SUCCESS'||$result['trade_status']=='TRADE_FINISHED'){
		return 'success';//必须输出
    }

```

文档地址：

### 订阅消息

[](#订阅消息-2)

```

$options=[
	'to_user_id' =>'参数1',//接收模板消息的用户 user_id
	'user_template_id'=>'参数2',//消息模板ID
	'page'=>'',//小程序的跳转页面
	//模板参数
	'data'=>[
		'thing4' =>'参数1',
		'phrase5'=>'参数2'
	]
];
$result=Applet::getInstance('Alipay')->init($Config)->sendMessage($options);

```

文档地址：

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

1400d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a64f2ca54e61efbfb6887be5cdbe2bb68a63847332cb3dba574a3ed76e5d5575?d=identicon)[q889518](/maintainers/q889518)

---

Top Contributors

[![suifeng168](https://avatars.githubusercontent.com/u/19340962?v=4)](https://github.com/suifeng168 "suifeng168 (6 commits)")

### Embed Badge

![Health badge](/badges/suifeng-applet-paylogin/health.svg)

```
[![Health](https://phpackages.com/badges/suifeng-applet-paylogin/health.svg)](https://phpackages.com/packages/suifeng-applet-paylogin)
```

###  Alternatives

[msilabs/bkash

bKash Payment Gateway API for Laravel Framework.

181.2k](/packages/msilabs-bkash)[binkode/laravel-paystack

A description for laravel-paystack.

112.1k](/packages/binkode-laravel-paystack)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
