| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\admin\models\alipay;
- use app\modules\admin\models\AlipayThirdForm;
- use app\models\ActivityOrdervoucher;
- use app\models\AlipayVoucherCodeTask;
- use app\models\AlipayVoucherCode;
- use app\models\Coupon;
- use app\models\CouponAutoSend;
- use app\models\User;
- use app\models\Store;
- use app\models\SaasUser;
- use app\models\UserCoupon;
- use yii\base\Model;
- use yii\data\Pagination;
- use app\models\StoreAliMini;
- use app\models\StoreAliShop;
- class Alipayapp extends Model
- {
- public $activity_ordervoucher_id;
- public $mini_id;
- public $alipay_activity_id;
- public $store_id;
- public $pageSize = 5;
- public $page = 1;
- public $publish_start_time;
- public $publish_end_time;
- public $alipayShopId;
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['store_id', 'mini_id', 'page', 'pageSize'], 'integer'],
- [['publish_start_time', 'publish_end_time'], 'safe'],
- ];
- }
- public function baseData() {
- $url = $this->alipayUrl();
- $shopId = StoreAliShop::findOne(['mini_id'=>$this->mini_id])->shop_id;
- return [
- 'code' => 0,
- 'data' => [
- 'alipay_url' => $url,
- 'shop_id' => $shopId,
- ],
- ];
- }
- public function alipayUrl($page = '/page/home/home', $params = '') {
- $mini = StoreAliMini::findOne($this->mini_id);
- $appid = $mini->auth_app_id;
- $url = 'alipays://platformapi/startapp?appId='.$appid.'&page='.$page.'&query='.$params.'';
- return $url;
- }
- private function handAttr($source) {
- // var_dump($source);
- $shopId = $this->alipayShopId;
- $res = [];
- if(isset($source['attribute'][0])){
- foreach($source['attribute'] as $k => $attri){
- if(isset($attri['attributes'])){
- $r = [];
- $r[0] = $attri['@attributes'];
- $r[1] = $this->handAttr($attri['attributes']);
- $res[] = $r;
- }else{
- if($attri['@attributes']['id'] == 'shopId'){
- $attri['value'] = $shopId;
- }
- if($attri['value']){
- if(isset($attri['values'])){
- $attri['@attributes']['values'] = $attri['value'];
- }else if(isset($attri['value'])){
- $attri['@attributes']['value'] = $attri['value'];
- }
- if(isset($attri['value'])){
- $res[][0] = $attri['@attributes'];
- }
- }
- }
- }
- }else{
- $attri = $source['attribute'];
- if($attri['@attributes']['id'] == 'shopId'){
- $attri['value'] = $shopId;
- }
- if($attri['value']){
- if(isset($attri['values'])){
- $attri['@attributes']['values'] = $attri['value'];
- }else if(isset($attri['value'])){
- $attri['@attributes']['value'] = $attri['value'];
- }
- if(isset($attri['value'])){
- $res[][0] = $attri['@attributes'];
- }
- }
- }
- return $res;
- }
- private function toXml($arr) {
- $xml = '';
- $res = [];
- foreach($arr as $k => $attri){
- if(isset($attri[1])){
- $r = $this->toXml($attri[1]);
- $x = $r;
- $attr = [];
- foreach ($attri[0] as $i => $v){
- $attr[] = $i . '="' . $v . '"';
- }
- $attr = implode(' ', $attr);
- $xml .= '<attribute '.$attr.'><attributes>'.$x.'</attributes></attribute>';
- }else{
- $val = '';
- if(isset($attri[0]['values'])){
- $val .= '<values>';
- foreach ($attri[0]['values'] as $vv){
- $val .= '<value>'.$vv.'</value>';
- }
- $val .= '</values>';
- }else if(isset($attri[0]['value'])){
- $val .= '<value>'.$attri[0]['value'].'</value>';
- }
- $attr = [];
- foreach ($attri[0] as $i => $v){
- if(in_array($i, ['value', 'values'])){
- continue;
- }
- $attr[] = $i . '="' . $v . '"';
- }
- $attr = implode(' ', $attr);
- $xml .= '<attribute '.$attr.'>
- '.$val.'
- </attribute>';
- }
- }
- return $xml;
- }
- public function serviceSchema($source, $charset='utf8') {
- $r = $this->handAttr($source);
- // var_dump($r);die;
- $xml = '<?xml version="1.0" encoding="utf-8"?><serviceSchema>';
- $xml .= $this->toXml($r);
- $xml .= '</serviceSchema>';
- // var_dump($xml);die;
- return $xml;
- }
- }
|