|
1 | | -# byte |
2 | | -字节小程序(支付、手机号解密、获取Token、模版消息、支付异步通知、退款、订单查询) |
| 1 | +<p align="center"> |
| 2 | +<a href="https://packagist.org/packages/code-lives/byte" target="_blank"><img src="https://img.shields.io/packagist/v/code-lives/byte?include_prereleases" alt="GitHub forks"></a> |
| 3 | +<a href="https://packagist.org/packages/code-lives/byte" target="_blank"><img src="https://img.shields.io/github/stars/code-lives/byte?style=social" alt="GitHub forks"></a> |
| 4 | +<a href="https://github.com/code-lives/byte/fork" target="_blank"><img src="https://img.shields.io/github/forks/code-lives/byte?style=social" alt="GitHub forks"></a> |
| 5 | + |
| 6 | +</p> |
| 7 | + |
| 8 | +| 第三方 | token | openid | 支付 | 回调 | 退款 | 订单查询 | 解密手机号 | 分账 | 模版消息 | |
| 9 | +| :-------------------------------------------------------------------------------------------------: | :---: | :----: | :--: | :--: | :--: | :------: | :--------: | :--: | :------: | |
| 10 | +| [抖音小程序](https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/introduction/overview/) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 11 | + |
| 12 | +## 安装 |
| 13 | + |
| 14 | +```php |
| 15 | +composer require code-lives/byte |
| 16 | +``` |
| 17 | + |
| 18 | +### ⚠️ 注意 |
| 19 | + |
| 20 | +> 金额单位分 100=1 元 |
| 21 | +
|
| 22 | +> 返回结果 array 由开发者自行判断 |
| 23 | +
|
| 24 | +> 抖音小程序由字节小程序转变而来,支持多端(头条、抖音、今日头条等关联应用) |
| 25 | +
|
| 26 | +# 预下单 |
| 27 | + |
| 28 | +```php |
| 29 | +<?php |
| 30 | + |
| 31 | +//引入命名空间 |
| 32 | +use Applet\Assemble\Byte; |
| 33 | + |
| 34 | +$pay= Byte::init($config)->set("订单号","金额","描述","描述")->getParam(); |
| 35 | + |
| 36 | +``` |
| 37 | + |
| 38 | +# 抖音小程序 |
| 39 | + |
| 40 | +### Config |
| 41 | + |
| 42 | +| 参数名字 | 类型 | 必须 | 说明 | |
| 43 | +| ----------- | ------ | ---- | --------------------------------- | |
| 44 | +| token | string | 是 | 担保交易回调的 Token(令牌) | |
| 45 | +| salt | string | 是 | 担保交易的 SALT | |
| 46 | +| merchant_id | string | 是 | 担保交易的商户号 | |
| 47 | +| app_id | int | 是 | 小程序的 APP_ID | |
| 48 | +| secret | string | 是 | 小程序的 APP_SECRET | |
| 49 | +| notify_url | string | 是 | 支付回调 url | |
| 50 | +| settle_url | string | 否 | 分账回调 url,没有默认支付回调 url | |
| 51 | + |
| 52 | +### Token |
| 53 | + |
| 54 | +```php |
| 55 | +$data= Byte::init($config)->getToken(); |
| 56 | +``` |
| 57 | + |
| 58 | +| 返回参数 | 类型 | 必须 | 说明 | |
| 59 | +| ------------ | ------ | ---- | ---------------------- | |
| 60 | +| expires_in | string | 是 | 凭证有效时间,单位:秒 | |
| 61 | +| access_token | string | 是 | 获取到的凭证 | |
| 62 | + |
| 63 | +### Openid |
| 64 | + |
| 65 | +```php |
| 66 | +$code=""; |
| 67 | +$anonymous_code="";//可以不传 |
| 68 | +$data= Byte::init($config)->getOpenid($code,$anonymous_code); |
| 69 | +``` |
| 70 | + |
| 71 | +| 返回参数 | 类型 | 必须 | 说明 | |
| 72 | +| ----------- | ------ | ---- | ----------- | |
| 73 | +| session_key | string | 是 | session_key | |
| 74 | +| openid | string | 是 | 用户 openid | |
| 75 | +| unionid | string | 是 | unionid | |
| 76 | + |
| 77 | +### 解密手机号 |
| 78 | + |
| 79 | +```php |
| 80 | +$data= Byte::init($config)->decryptPhone($session_key, $iv, $encryptedData); |
| 81 | +echo $phone['phoneNumber']; |
| 82 | +``` |
| 83 | + |
| 84 | +### 订单查询 |
| 85 | + |
| 86 | +```php |
| 87 | +$data = Byte::init($config)->findOrder("订单号"); |
| 88 | +``` |
| 89 | + |
| 90 | +### 分账 |
| 91 | + |
| 92 | +| 参数名字 | 类型 | 必须 | 说明 | |
| 93 | +| ------------- | ------ | ---- | ------------------------------ | |
| 94 | +| out_order_no | string | 是 | 平台订单号 | |
| 95 | +| out_settle_no | string | 是 | 自定义订单号 | |
| 96 | +| settle_desc | int | 是 | 分账描述 | |
| 97 | +| cp_extra | string | 是 | 开发者自定义字段,回调原样回传 | |
| 98 | + |
| 99 | +```php |
| 100 | +$data = Byte::init($config)->settle($order); |
| 101 | +``` |
| 102 | + |
| 103 | +### 退款 |
| 104 | + |
| 105 | +| 参数名字 | 类型 | 必须 | 说明 | |
| 106 | +| ------------- | ------ | ---- | ------------ | |
| 107 | +| out_order_no | string | 是 | 平台订单号 | |
| 108 | +| out_refund_no | int | 是 | 自定义订单号 | |
| 109 | +| reason | int | 是 | 退款说明 | |
| 110 | +| refund_amount | string | 是 | 退款金额 | |
| 111 | + |
| 112 | +```php |
| 113 | +$order = [ |
| 114 | + 'out_order_no' => '', |
| 115 | + 'out_refund_no' => time() . 'refund', |
| 116 | + 'reason' => '就想退款,咋滴', |
| 117 | + 'refund_amount' => 1, //退款金额 |
| 118 | + ]; |
| 119 | +$data= Byte::init($config)->applyOrderRefund($order); |
| 120 | +``` |
| 121 | + |
| 122 | +### 模版消息 |
| 123 | + |
| 124 | +```php |
| 125 | +$data = [ |
| 126 | + 'tpl_id' => "模版id", |
| 127 | + "open_id" => $parm['openid'], |
| 128 | + 'data' => [ |
| 129 | + '律师' => "张三", |
| 130 | + "回复时间" => date('Y-m-d H:i:s', time()), |
| 131 | + "回复内容" => "我回复你啦", |
| 132 | + ], |
| 133 | + "page" => "pages/index/index", |
| 134 | + ]; |
| 135 | +$data= Byte::init($config)->sendMsg($data,$token); |
| 136 | + |
| 137 | +``` |
| 138 | + |
| 139 | +# 异步通知 |
| 140 | + |
| 141 | +## 抖音 |
| 142 | + |
| 143 | +```php |
| 144 | +$byte = Byte::init($config); |
| 145 | +$status = $byte->notifyCheck(); //验证 |
| 146 | +if ($status) { |
| 147 | + $orderSn = $byte->getNotifyOrder(); //订单数据$orderSn['msg']['cp_orderno'] $orderSn['msg']['seller_uid'] |
| 148 | + switch ($orderSn['type']) { |
| 149 | + case 'payment': // 支付相关回调 |
| 150 | + /** |
| 151 | + *业务处理 |
| 152 | + */ |
| 153 | + echo json_encode(['err_no' => 0, 'err_tips' => 'success']);exit; // 操作成功需要给头条返回的信息 |
| 154 | + break; |
| 155 | + case 'refund': // 退款相关回调 |
| 156 | + /** |
| 157 | + *业务处理 |
| 158 | + */ |
| 159 | + echo json_encode(['err_no' => 0, 'err_tips' => 'success']);exit; // 操作成功需要给头条返回的信息 |
| 160 | + break; |
| 161 | + case 'settle': // 分账相关回调 |
| 162 | + /** |
| 163 | + *业务处理 |
| 164 | + */ |
| 165 | + echo json_encode(['err_no' => 0, 'err_tips' => 'success']);exit; // 操作成功需要给头条返回的信息 |
| 166 | + break; |
| 167 | + default: // 未知数据 |
| 168 | + return '数据异常'; |
| 169 | + } |
| 170 | +} |
| 171 | +``` |
| 172 | + |
| 173 | +# 感谢支持 |
| 174 | + |
| 175 | +<img src="https://thumbnail0.baidupcs.com/thumbnail/b2ef03278l73b537b730fe8671ab5986?fid=289147368-250528-374896578244859&time=1689314400&rt=sh&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-Dzs8rsH9TbSoA%2FGo%2BZ4xk96Geh0%3D&expires=8h&chkv=0&chkbd=0&chkpc=&dp-logid=9125333982584419475&dp-callid=0&file_type=0&size=c710_u400&quality=100&vuk=-&ft=video" height="300px"> |
0 commit comments