
同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示
系统版本号:10.0.16299
编译器版本:3.6.18(vue3)
fast启动模式
手机型号:iqoo neo5
控制台截图:

描述:多次开关手机开发者模式、usb调试;使用HBuilder自带的ADB进行真机运行;保持手机和电脑在同一个局域网下;
使用标准基座和自定义基座都无法解决该问题。
系统版本号:10.0.16299
编译器版本:3.6.18(vue3)
fast启动模式
手机型号:iqoo neo5
控制台截图:
描述:多次开关手机开发者模式、usb调试;使用HBuilder自带的ADB进行真机运行;保持手机和电脑在同一个局域网下;
使用标准基座和自定义基座都无法解决该问题。 收起阅读 »

百川旗舰版集成流程图
1.首先加入百川http://baichuan.taobao.com/,在阿里百川控制台创建应用获取appkey:
2.在阿里百川控制台"我的产品后台"中查看是否开通 “百川电商sdk” 和 “百川电商旗舰版” :
3.在https://suite.baichuan.taobao.com/suite2.htm?spm=a3c0d.8115090.0.0#/sdk上生成安全图片:
(使用V6版安全图片,android 需要上传包含包名和签名证书的apk, iOS只需要填写 bundleId;图片需另命名为yw_1222_baichuan.jpg)
1.首先加入百川http://baichuan.taobao.com/,在阿里百川控制台创建应用获取appkey:
2.在阿里百川控制台"我的产品后台"中查看是否开通 “百川电商sdk” 和 “百川电商旗舰版” :
3.在https://suite.baichuan.taobao.com/suite2.htm?spm=a3c0d.8115090.0.0#/sdk上生成安全图片:
(使用V6版安全图片,android 需要上传包含包名和签名证书的apk, iOS只需要填写 bundleId;图片需另命名为yw_1222_baichuan.jpg)

提一个路由改进建议
目前的路由是没有分组的,如果一个项目几百个页面,在pages.json文件全部展示出来,找起来是非常麻烦的,而且路由匹配的速度应该也不快,可以设计路由分组,同模块下多个页面,可以在一个组下,例如下面这种php的写法,也方便在编辑器折叠,找起来也比较方便
//会员数据请求
Route::group('user/', function(){
//会员信息查询与更新
Route::group('handle/', function () {
Route::get('memberInfo/:name', 'user.UserHandle/getUserInfo');//会员个人资料页面获取信息
Route::get('TeamList', 'user.UserHandle/getTeamList');//获取团队信息
Route::get('TeamInfo/:name', 'user.UserHandle/getTeamInfo');//获取团队会员详细信息
Route::get('setContact/:name', 'user.UserHandle/setContact');//修改会员联系状态
Route::get('SystemList', 'user.UserHandle/getSystemList');//获取系统会员
Route::get('SystemInfo/:name', 'user.UserHandle/getSystemInfo');//获取系统会员详细信息
Route::get('getInstructorInfo', 'user.UserHandle/getInstructorInfo');//获取指导老师信息
Route::get('newestInfo', 'user.UserHandle/NewestInfo');//获取会员最新信息
Route::get('wechatUnbound', 'user.UserHandle/WechatUnbound');//解绑公众号
Route::post('setGroup/:name', 'user.UserHandle/setGroup');//修改团队会员等级
Route::post('setModifyPw/:name', 'user.UserHandle/setModifyPw');//修改团队会员密码
Route::post('upUserData', 'user.UserHandle/upUserInfo');//会员个人资料页面更新信息
Route::post('settglink', 'user.UserHandle/setTgLink');//修改推广识别码
Route::post('upvidwds', 'user.UserHandle/upWordVideoData');//小程序,会员提交视频和文字介绍
Route::post('lineRegUserInfo', 'user.UserHandle/lineRegUserInfo');//针对line注册的会员,进行一个资料完善
});
//订单相关
Route::group('order/', function () {
Route::get('getlist', 'user.Order/getOrderList');//获取订单列表
Route::get('getData/:id', 'user.Order/getOrderId');//根据id获取订单信息
Route::get('confirm/:id', 'user.Order/confirmReceiptOrderId');//会员确认收货
Route::get('cancel/:id', 'user.Order/cancelOrderId');//会员取消订单
Route::get('softdel/:id', 'user.Order/deleteOrderId');//会员删除订单
// 评论相关
Route::get('getCommentPackage/:id', 'user.OrderComment/getOrderPackage');//会员获取评论订单
Route::post('upCommentContent/:id', 'user.OrderComment/commentOrderPackage');//会员提交评论订单内容
// 退款相关
Route::get('getReturnList', 'user.OrderReturn/getOrderReturnList');//获取退款列表
Route::get('getReturnId/:id', 'user.OrderReturn/getOrderReturnId');//根据id获取退换信息
Route::get('getReturnPackage/:id', 'user.OrderReturn/getOrderPackage');//退款页面获取订单的产品信息
Route::post('addReturnPackage', 'user.OrderReturn/addOrderReturn');//提交退款信息
Route::get('cancelService/:id', 'user.OrderReturn/cancelServiceList');//取消退换货
});
});
目前的路由是没有分组的,如果一个项目几百个页面,在pages.json文件全部展示出来,找起来是非常麻烦的,而且路由匹配的速度应该也不快,可以设计路由分组,同模块下多个页面,可以在一个组下,例如下面这种php的写法,也方便在编辑器折叠,找起来也比较方便
//会员数据请求
Route::group('user/', function(){
//会员信息查询与更新
Route::group('handle/', function () {
Route::get('memberInfo/:name', 'user.UserHandle/getUserInfo');//会员个人资料页面获取信息
Route::get('TeamList', 'user.UserHandle/getTeamList');//获取团队信息
Route::get('TeamInfo/:name', 'user.UserHandle/getTeamInfo');//获取团队会员详细信息
Route::get('setContact/:name', 'user.UserHandle/setContact');//修改会员联系状态
Route::get('SystemList', 'user.UserHandle/getSystemList');//获取系统会员
Route::get('SystemInfo/:name', 'user.UserHandle/getSystemInfo');//获取系统会员详细信息
Route::get('getInstructorInfo', 'user.UserHandle/getInstructorInfo');//获取指导老师信息
Route::get('newestInfo', 'user.UserHandle/NewestInfo');//获取会员最新信息
Route::get('wechatUnbound', 'user.UserHandle/WechatUnbound');//解绑公众号
Route::post('setGroup/:name', 'user.UserHandle/setGroup');//修改团队会员等级
Route::post('setModifyPw/:name', 'user.UserHandle/setModifyPw');//修改团队会员密码
Route::post('upUserData', 'user.UserHandle/upUserInfo');//会员个人资料页面更新信息
Route::post('settglink', 'user.UserHandle/setTgLink');//修改推广识别码
Route::post('upvidwds', 'user.UserHandle/upWordVideoData');//小程序,会员提交视频和文字介绍
Route::post('lineRegUserInfo', 'user.UserHandle/lineRegUserInfo');//针对line注册的会员,进行一个资料完善
});
//订单相关
Route::group('order/', function () {
Route::get('getlist', 'user.Order/getOrderList');//获取订单列表
Route::get('getData/:id', 'user.Order/getOrderId');//根据id获取订单信息
Route::get('confirm/:id', 'user.Order/confirmReceiptOrderId');//会员确认收货
Route::get('cancel/:id', 'user.Order/cancelOrderId');//会员取消订单
Route::get('softdel/:id', 'user.Order/deleteOrderId');//会员删除订单
// 评论相关
Route::get('getCommentPackage/:id', 'user.OrderComment/getOrderPackage');//会员获取评论订单
Route::post('upCommentContent/:id', 'user.OrderComment/commentOrderPackage');//会员提交评论订单内容
// 退款相关
Route::get('getReturnList', 'user.OrderReturn/getOrderReturnList');//获取退款列表
Route::get('getReturnId/:id', 'user.OrderReturn/getOrderReturnId');//根据id获取退换信息
Route::get('getReturnPackage/:id', 'user.OrderReturn/getOrderPackage');//退款页面获取订单的产品信息
Route::post('addReturnPackage', 'user.OrderReturn/addOrderReturn');//提交退款信息
Route::get('cancelService/:id', 'user.OrderReturn/cancelServiceList');//取消退换货
});
});
收起阅读 »
html实体空格无效
空格分为 两种: 普通文本空格和html实体空格
普通文本空格 unicode 正则 描述
全角-中文空格键 \u3000 中文网页上常会出现
半角-英文空格键 \u0020 \s 最常见,写代码
html实体空格 unicode 十六进制 描述
\u00a0 \xa0
1个字符宽度
不间断空格,主要用在office中,让一个单词在结尾处不会换行显示
  \u2002
1个字符宽度
半角空格
  \u2003
2个字符宽度
全角空格
\u2009 小于1个字符宽度
 ;
3.其他制表符
\n 回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008)
\r 换行(\u000d)
解决方案1
将html空格替换成想要的unicode码
解决方案2 vue 的 v-html
<div v-html="' '"></div>
关于在线文档编辑时,文字对齐的有效操作:在全角的情况下点击空格键,对应的实体字符是 
空格分为 两种: 普通文本空格和html实体空格
普通文本空格 unicode 正则 描述
全角-中文空格键 \u3000 中文网页上常会出现
半角-英文空格键 \u0020 \s 最常见,写代码
html实体空格 unicode 十六进制 描述
\u00a0 \xa0
1个字符宽度
不间断空格,主要用在office中,让一个单词在结尾处不会换行显示
  \u2002
1个字符宽度
半角空格
  \u2003
2个字符宽度
全角空格
\u2009 小于1个字符宽度
 ;
3.其他制表符
\n 回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008)
\r 换行(\u000d)
解决方案1
将html空格替换成想要的unicode码
解决方案2 vue 的 v-html
<div v-html="' '"></div>
关于在线文档编辑时,文字对齐的有效操作:在全角的情况下点击空格键,对应的实体字符是 
收起阅读 »
网站变成APP与小程序就是那么容易(基于帝国7.5开发)
部分小白站长朋友们很想很想把自己的网站做成APP与各类小程序!感觉很高大上的感觉!(实测推广比网站难度大很多但是浏览速度比网站确实快很多,毕竟是渲染层与逻辑层是分开了的)其实是非常容易的!DZ与WORDPRESS插件市场已经有了就不重点说明了!自己去搜搜下吧!今天给大家带来一个好的插件!让帝国CMS也可以做成APP与各类小程序!(小编也是帝国的老粉丝)
经过一段时间学习uniapp发现是很简单的!只需要把帝国数据处理后的数据格式转换为json就可以了!安卓软件包!https://www.meiweny.cn/app/1.2.8.apk 微信小程序请微信搜索“美文苑”进行体验!!
前端所需要的模板文件与数据处理接口文件下载:https://www.meiweny.cn/ruanjianleyuan/32.html
部分小白站长朋友们很想很想把自己的网站做成APP与各类小程序!感觉很高大上的感觉!(实测推广比网站难度大很多但是浏览速度比网站确实快很多,毕竟是渲染层与逻辑层是分开了的)其实是非常容易的!DZ与WORDPRESS插件市场已经有了就不重点说明了!自己去搜搜下吧!今天给大家带来一个好的插件!让帝国CMS也可以做成APP与各类小程序!(小编也是帝国的老粉丝)
经过一段时间学习uniapp发现是很简单的!只需要把帝国数据处理后的数据格式转换为json就可以了!安卓软件包!https://www.meiweny.cn/app/1.2.8.apk 微信小程序请微信搜索“美文苑”进行体验!!
前端所需要的模板文件与数据处理接口文件下载:https://www.meiweny.cn/ruanjianleyuan/32.html
收起阅读 »
全新个人发卡网源码开源版内置免签支付接口可对接易支付
在本文中,让我们看看如何实施支付网关PHP源代码项目。我们已经在一篇用PHP语言集成的文章中清楚地解释了这个过程。但是所有技术的步骤都是相同的。因此,请阅读此处的集成指南。其实步骤很简单,我们只需要输入商户密钥和salt。
源码:paywks.top/ka
这里我有使用框架,因为支付网关不像简单的过程。我们需要手动设置一些更改并实施代码。所以当我们使用COREPHP时,会面临更多的错误处理困难。这就是为什么大多数开发人员建议使用Laravel、Codeigniter等框架的原因。
支付网关PHP要遵循的步骤
如果您是该类别的初学者,请阅读官方文档。之后,您对构建代码有了一些想法。第一步是选择最好的支付网关提供商之一。
我希望你的系统上已经有下载节点,以提取依赖管理器。所以首先通过命令提示符创建Laravel项目。
useShipu\Aamarpay\Aamarpay;
$config=[
'store_id'=>'Yourstoreid',
'signature_key'=>'Yoursignaturekey',
'sandbox'=>true,
'redirect_url'=>[
'success'=>[
'route'=>'payment.success'
],
'cancel'=>[
'route'=>'payment.cancel'
]
]
];
$payment=newAamarpay($config);
上面的代码解释了连接到数据库的模块的必填字段。然后只有我们能够与数据库系统进行通信。否则,确切的数据不会在后端通信中传输。
use\Shipu\Aamarpay\Aamarpay;
...
$payment=newAamarpay(config('aamarpay'));
return$payment->customer([
'cus_name'=>'ShipuAhamed',//Customername
'cus_phone'=>'01616022669'//CustomerPhone
'cus_email'=>'shipuahamed01@gmail.com',//Customeremail
])->transactionId()->amount(3500)->hiddenValue();
or
return$payment->customer([
'cus_name'=>'ShipuAhamed',//Customername
'cus_phone'=>'9854345483'//CustomerPhone
'cus_email'=>'shipuahamed01@gmail.com',//Customeremail
])->amount(3500)->hiddenValue();
Route::post('payment/success','YourMakePaymentsController@paymentSuccess')->name('payment.success');
Route::post('payment/failed','YourMakePaymentsController@paymentFailed')->name('payment.failed');
Route::post('payment/cancel','YourMakePaymentsController@paymentCancel')->name('payment.cancel');
PHP库
接下来,您需要在数据库中创建一个表来保存交易明细。接下来是在MySQL数据库中创建订单表的SQL。
CREATETABLEorders
(
id
int(11)NOTNULLAUTO_INCREMENT,
name
varchar(100)COLLATEutf8_unicode_ciNOTNULL,
email
varchar(255)COLLATEutf8_unicode_ciNOTNULL,
card_num
bigint(20)NOTNULL,
card_cvc
int(5)NOTNULL,
card_exp_month
varchar(2)COLLATEutf8_unicode_ciNOTNULL,
card_exp_year
varchar(5)COLLATEutf8_unicode_ciNOTNULL,
item_name
varchar(255)COLLATEutf8_unicode_ciNOTNULL,
item_number
varchar(50)COLLATEutf8_unicode_ciNOTNULL,
item_price
float(10,2)NOTNULL,
item_price_currency
varchar(10)COLLATEutf8_unicode_ciNOTNULLDEFAULT'usd',
paid_amount
varchar(10)COLLATEutf8_unicode_ciNOTNULL,
paid_amount_currency
varchar(10)COLLATEutf8_unicode_ciNOTNULL,
txn_id
varchar(100)COLLATEutf8_unicode_ciNOTNULL,
payment_status
varchar(50)COLLATEutf8_unicode_ciNOTNULL,
created
datetimeNOTNULL,
modified
datetimeNOTNULL,
PRIMARYKEY(id
)
)ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;
数据库配置(dbConfig.php)
您将需要dbConfig.php文件来连接和选择数据库。在数据库凭证后指定数据库主机($dbHost)、用户名($dbUsername)、密码($dbPassword)和名称($dbName)。
接下来,我们将使用StripePHP库来处理卡支付。该图书馆可在此处获得。
//checkwhetherstripetokenisnotempty
if(!empty($_POST['stripeToken'])){
//gettoken,cardanduserinfofromtheform
$token=$_POST['stripeToken'];
$name=$_POST['name'];
$email=$_POST['email'];
$card_num=$_POST['card_num'];
$card_cvc=$_POST['cvc'];
$card_exp_month=$_POST['exp_month'];
$card_exp_year=$_POST['exp_year'];
//includeStripePHPlibrary
require_once('stripe-php/init.php');
//setapikey
$stripe=array(
"secret_key"=>"Your_API_Secret_Key",
"publishable_key"=>"Your_API_Publishable_Key"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
//addcustomertostripe
$customer=\Stripe\Customer::create(array(
'email'=>$email,
'source'=>$token
));
//iteminformation
$itemName="PremiumScriptCodexWorld";
$itemNumber="PS123456";
$itemPrice=55;
$currency="usd";
$orderID="SKA92712382139";
//chargeacreditoradebitcard
$charge=\Stripe\Charge::create(array(
'customer'=>$customer->id,
'amount'=>$itemPrice,
'currency'=>$currency,
'description'=>$itemName,
'metadata'=>array(
'order_id'=>$orderID
)
));
//retrievechargedetails
$chargeJson=$charge->jsonSerialize();
//checkwhetherthechargeissuccessful
if($chargeJson['amount_refunded']==0&&empty($chargeJson
['failure_code'])&&$chargeJson['paid']==1&&$chargeJson['captured']==1){
//orderdetails
$amount=$chargeJson['amount'];
$balance_transaction=$chargeJson['balance_transaction'];
$currency=$chargeJson['currency'];
$status=$chargeJson['status'];
$date=date("Y-m-dH:i:s");
//includedatabaseconfigfile
include_once'dbConfig.php';
//inserttansactiondataintothedatabase
$sql=
"INSERTINTOorders(name,email,card_num,card_cvc,card_exp_month,card_exp_year,
item_name,item_number,item_price,item_price_currency,paid_amount,
paid_amount_currency,txn_id,payment_status,created,modified)VALUES
('".$name."','".$email."','".$card_num."','".$card_cvc."','".$card_exp_month."',
'".$card_exp_year."','".$itemName."','".$itemNumber."','".$itemPrice."','".$currency."',
'".$amount."','".$currency."','".$balance_transaction."'
,'".$status."','".$date."','".$date."')";
$insert=$db->query($sql);
$last_insert_id=$db->insert_id;
//iforderinsertedsuccessfully
if($last_insert_id&&$status=='succeeded'){
$statusMsg="<h2>Thetransactionwassuccessful.</h2>
<h4>OrderID:{$last_insert_id}</h4>";
}else{
$statusMsg="Transactionhasbeenfailed";
}
}else{
$statusMsg="Transactionhasbeenfailed";
}
}else{
$statusMsg="Formsubmissionerror.......";
}
//showsuccessorerrormessage
echo$statusMsg;
在本文中,让我们看看如何实施支付网关PHP源代码项目。我们已经在一篇用PHP语言集成的文章中清楚地解释了这个过程。但是所有技术的步骤都是相同的。因此,请阅读此处的集成指南。其实步骤很简单,我们只需要输入商户密钥和salt。
源码:paywks.top/ka
这里我有使用框架,因为支付网关不像简单的过程。我们需要手动设置一些更改并实施代码。所以当我们使用COREPHP时,会面临更多的错误处理困难。这就是为什么大多数开发人员建议使用Laravel、Codeigniter等框架的原因。
支付网关PHP要遵循的步骤
如果您是该类别的初学者,请阅读官方文档。之后,您对构建代码有了一些想法。第一步是选择最好的支付网关提供商之一。
我希望你的系统上已经有下载节点,以提取依赖管理器。所以首先通过命令提示符创建Laravel项目。
useShipu\Aamarpay\Aamarpay;
$config=[
'store_id'=>'Yourstoreid',
'signature_key'=>'Yoursignaturekey',
'sandbox'=>true,
'redirect_url'=>[
'success'=>[
'route'=>'payment.success'
],
'cancel'=>[
'route'=>'payment.cancel'
]
]
];
$payment=newAamarpay($config);
上面的代码解释了连接到数据库的模块的必填字段。然后只有我们能够与数据库系统进行通信。否则,确切的数据不会在后端通信中传输。
use\Shipu\Aamarpay\Aamarpay;
...
$payment=newAamarpay(config('aamarpay'));
return$payment->customer([
'cus_name'=>'ShipuAhamed',//Customername
'cus_phone'=>'01616022669'//CustomerPhone
'cus_email'=>'shipuahamed01@gmail.com',//Customeremail
])->transactionId()->amount(3500)->hiddenValue();
or
return$payment->customer([
'cus_name'=>'ShipuAhamed',//Customername
'cus_phone'=>'9854345483'//CustomerPhone
'cus_email'=>'shipuahamed01@gmail.com',//Customeremail
])->amount(3500)->hiddenValue();
Route::post('payment/success','YourMakePaymentsController@paymentSuccess')->name('payment.success');
Route::post('payment/failed','YourMakePaymentsController@paymentFailed')->name('payment.failed');
Route::post('payment/cancel','YourMakePaymentsController@paymentCancel')->name('payment.cancel');
PHP库
接下来,您需要在数据库中创建一个表来保存交易明细。接下来是在MySQL数据库中创建订单表的SQL。
CREATETABLEorders
(
id
int(11)NOTNULLAUTO_INCREMENT,
name
varchar(100)COLLATEutf8_unicode_ciNOTNULL,
email
varchar(255)COLLATEutf8_unicode_ciNOTNULL,
card_num
bigint(20)NOTNULL,
card_cvc
int(5)NOTNULL,
card_exp_month
varchar(2)COLLATEutf8_unicode_ciNOTNULL,
card_exp_year
varchar(5)COLLATEutf8_unicode_ciNOTNULL,
item_name
varchar(255)COLLATEutf8_unicode_ciNOTNULL,
item_number
varchar(50)COLLATEutf8_unicode_ciNOTNULL,
item_price
float(10,2)NOTNULL,
item_price_currency
varchar(10)COLLATEutf8_unicode_ciNOTNULLDEFAULT'usd',
paid_amount
varchar(10)COLLATEutf8_unicode_ciNOTNULL,
paid_amount_currency
varchar(10)COLLATEutf8_unicode_ciNOTNULL,
txn_id
varchar(100)COLLATEutf8_unicode_ciNOTNULL,
payment_status
varchar(50)COLLATEutf8_unicode_ciNOTNULL,
created
datetimeNOTNULL,
modified
datetimeNOTNULL,
PRIMARYKEY(id
)
)ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;
数据库配置(dbConfig.php)
您将需要dbConfig.php文件来连接和选择数据库。在数据库凭证后指定数据库主机($dbHost)、用户名($dbUsername)、密码($dbPassword)和名称($dbName)。
接下来,我们将使用StripePHP库来处理卡支付。该图书馆可在此处获得。
//checkwhetherstripetokenisnotempty
if(!empty($_POST['stripeToken'])){
//gettoken,cardanduserinfofromtheform
$token=$_POST['stripeToken'];
$name=$_POST['name'];
$email=$_POST['email'];
$card_num=$_POST['card_num'];
$card_cvc=$_POST['cvc'];
$card_exp_month=$_POST['exp_month'];
$card_exp_year=$_POST['exp_year'];
//includeStripePHPlibrary
require_once('stripe-php/init.php');
//setapikey
$stripe=array(
"secret_key"=>"Your_API_Secret_Key",
"publishable_key"=>"Your_API_Publishable_Key"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
//addcustomertostripe
$customer=\Stripe\Customer::create(array(
'email'=>$email,
'source'=>$token
));
//iteminformation
$itemName="PremiumScriptCodexWorld";
$itemNumber="PS123456";
$itemPrice=55;
$currency="usd";
$orderID="SKA92712382139";
//chargeacreditoradebitcard
$charge=\Stripe\Charge::create(array(
'customer'=>$customer->id,
'amount'=>$itemPrice,
'currency'=>$currency,
'description'=>$itemName,
'metadata'=>array(
'order_id'=>$orderID
)
));
//retrievechargedetails
$chargeJson=$charge->jsonSerialize();
//checkwhetherthechargeissuccessful
if($chargeJson['amount_refunded']==0&&empty($chargeJson
['failure_code'])&&$chargeJson['paid']==1&&$chargeJson['captured']==1){
//orderdetails
$amount=$chargeJson['amount'];
$balance_transaction=$chargeJson['balance_transaction'];
$currency=$chargeJson['currency'];
$status=$chargeJson['status'];
$date=date("Y-m-dH:i:s");
//includedatabaseconfigfile
include_once'dbConfig.php';
//inserttansactiondataintothedatabase
$sql=
"INSERTINTOorders(name,email,card_num,card_cvc,card_exp_month,card_exp_year,
item_name,item_number,item_price,item_price_currency,paid_amount,
paid_amount_currency,txn_id,payment_status,created,modified)VALUES
('".$name."','".$email."','".$card_num."','".$card_cvc."','".$card_exp_month."',
'".$card_exp_year."','".$itemName."','".$itemNumber."','".$itemPrice."','".$currency."',
'".$amount."','".$currency."','".$balance_transaction."'
,'".$status."','".$date."','".$date."')";
$insert=$db->query($sql);
$last_insert_id=$db->insert_id;
//iforderinsertedsuccessfully
if($last_insert_id&&$status=='succeeded'){
$statusMsg="<h2>Thetransactionwassuccessful.</h2>
<h4>OrderID:{$last_insert_id}</h4>";
}else{
$statusMsg="Transactionhasbeenfailed";
}
}else{
$statusMsg="Transactionhasbeenfailed";
}
}else{
$statusMsg="Formsubmissionerror.......";
}
//showsuccessorerrormessage
echo$statusMsg;

iOS AppStore上架流程图文详解2021版 (上)
到了2021年,虽然网上也有大牛写过很多IOS App上架流程资料,但随着苹果发布机制的微调有些已经过时了。我就趁着这次刚刚发布成功的鲜活经验,记录下来,做一下补充。
1、首先得注册Apple Developer的开发者账号,最后如果要上架苹果商店,这个账号是要交年费的,核算下来大概600多元人民币。
2、接下来要登录Apple Developer网站,点击“Account”栏目
3、如果该App需要多人协作开发,请进入People进入人员编辑。注意负责上架AppStore的人员需要有管理级别的权限。
4、人员设置完成过后,进入“Certificates...”页面了。
1先申请证书
2如果还在开发App,就需要申请下Apple Development证书,里面可以申请开发人员的AppleID以及测试真机
如果App额外的敏感功能,比如大部分App都需要的推送,则要申请Apple Push Notifucation service SSL(Sandbox & Production)
如果需要发布,则要申请iOS Distribution(App Store and Ad Hoc),然后点击下一步"Continue"
这里就需要上传CSR文件了,CSR是Certificate Signing Request的英文缩写,即证书请求文件。我们需要在电脑上《钥匙串访问》中生成。
点击钥匙串访问-->证书助理-->从证书颁发机构请求证书...
进入CSR生成界面,选择"保存到磁盘",在Create a New Certificate页面选择改文件,继续下一步,然后点击存储,双击下载后的证书就能完成配置。
3添加Identifiers,然后选择App IDs 接着下一步,
选择App接着下一步,这边要填写App的描述和Bundle ID,
如果有需要权限的功能也要在这边勾选,比如"Push Notifications"
4接着申请Profiles
如果还在开发阶段,可以选择iOS App Development。
如果要发布就选择App Store,接着选择你要发布的App ID,然后选择你之前申请的Certificates证书。
在Xcode App项目Release Signing签名中选择刚才生成的Profiles
APP Uploader APP开发助手-iOS APP上架到App Store的辅助工具,解决iOS APP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS证书申请,创建iOS开发者证书、iOS发布证书等各类证书,iOS开发者在Windows、Linux或Mac系统中上传IPA到App Store,简化iOS APP上架流程!在Windows pc中轻松快速上架你的APP。
Appuploader是一个非常好用的IPA上传发布工具,使用它可以辅助iOS软件的开发,可以很便捷的将app上传到AppStore,并且自带各种证书的申请,对于个人开发者来说很实用。只需输入证书名称,创建邮箱等信息即可创建证书,并且创建的证书,不绑定电脑。
App 开发助手可以直接在windows,linux或mac,不需要Mac,不需要钥匙串助手,只需输入证书的名称,邮箱和密码就可以创建,简单快速,并且申请的iOS证书可以不同电脑使用,证书协同无障碍,团队开发管理更高效。
到了2021年,虽然网上也有大牛写过很多IOS App上架流程资料,但随着苹果发布机制的微调有些已经过时了。我就趁着这次刚刚发布成功的鲜活经验,记录下来,做一下补充。
1、首先得注册Apple Developer的开发者账号,最后如果要上架苹果商店,这个账号是要交年费的,核算下来大概600多元人民币。
2、接下来要登录Apple Developer网站,点击“Account”栏目
3、如果该App需要多人协作开发,请进入People进入人员编辑。注意负责上架AppStore的人员需要有管理级别的权限。
4、人员设置完成过后,进入“Certificates...”页面了。
1先申请证书
2如果还在开发App,就需要申请下Apple Development证书,里面可以申请开发人员的AppleID以及测试真机
如果App额外的敏感功能,比如大部分App都需要的推送,则要申请Apple Push Notifucation service SSL(Sandbox & Production)
如果需要发布,则要申请iOS Distribution(App Store and Ad Hoc),然后点击下一步"Continue"
这里就需要上传CSR文件了,CSR是Certificate Signing Request的英文缩写,即证书请求文件。我们需要在电脑上《钥匙串访问》中生成。
点击钥匙串访问-->证书助理-->从证书颁发机构请求证书...
进入CSR生成界面,选择"保存到磁盘",在Create a New Certificate页面选择改文件,继续下一步,然后点击存储,双击下载后的证书就能完成配置。
3添加Identifiers,然后选择App IDs 接着下一步,
选择App接着下一步,这边要填写App的描述和Bundle ID,
如果有需要权限的功能也要在这边勾选,比如"Push Notifications"
4接着申请Profiles
如果还在开发阶段,可以选择iOS App Development。
如果要发布就选择App Store,接着选择你要发布的App ID,然后选择你之前申请的Certificates证书。
在Xcode App项目Release Signing签名中选择刚才生成的Profiles
APP Uploader APP开发助手-iOS APP上架到App Store的辅助工具,解决iOS APP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS证书申请,创建iOS开发者证书、iOS发布证书等各类证书,iOS开发者在Windows、Linux或Mac系统中上传IPA到App Store,简化iOS APP上架流程!在Windows pc中轻松快速上架你的APP。
Appuploader是一个非常好用的IPA上传发布工具,使用它可以辅助iOS软件的开发,可以很便捷的将app上传到AppStore,并且自带各种证书的申请,对于个人开发者来说很实用。只需输入证书名称,创建邮箱等信息即可创建证书,并且创建的证书,不绑定电脑。
App 开发助手可以直接在windows,linux或mac,不需要Mac,不需要钥匙串助手,只需输入证书的名称,邮箱和密码就可以创建,简单快速,并且申请的iOS证书可以不同电脑使用,证书协同无障碍,团队开发管理更高效。

一步一腳印的 iOS App 上架和更新流程
APP Uploader APP开发助手-iOS APP上架到App Store的辅助工具,解决iOS APP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS证书申请,创建iOS开发者证书、iOS发布证书等各类证书,iOS开发者在Windows、Linux或Mac系统中上传IPA到App Store,简化iOS APP上架流程!在Windows pc中轻松快速上架你的APP。
Appuploader是一个非常好用的IPA上传发布工具,使用它可以辅助iOS软件的开发,可以很便捷的将app上传到AppStore,并且自带各种证书的申请,对于个人开发者来说很实用。只需输入证书名称,创建邮箱等信息即可创建证书,并且创建的证书,不绑定电脑。
App 开发助手可以直接在windows,linux或mac,不需要Mac,不需要钥匙串助手,只需输入证书的名称,邮箱和密码就可以创建,简单快速,并且申请的iOS证书可以不同电脑使用,证书协同无障碍,团队开发管理更高效。
来APICloud移动应用开发平台学习更多APP开app上架应用市场需要什么条件
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
iOS app上架总体流程:
1登录苹果开发者中心,注册开发者账号
如果你是第一次申请注册使用Apple ID登录苹果开发者网站,需要同意“苹果开发者协议”,提交请求,这个时候你的Apple ID 就已经成为了一个开发者的ID了。如图1-1:
苹果开发者中心网址:https://developer.apple.com/
同意苹果开发者协议并提交申请
2申请付费开发者,加入苹果开发计划
加入苹果开发者计划
开始注册
注册说明
补充说明:
双重验证相关
苹果新规定Apple ID需开启双重验证才能注册开发者账号,所以在加入开发者之前需要根据提示开启设备进行双重验证;验证方法采用登录电脑上的iCloud根据提示进行验证(或者其他设备,如登录手机进行双重验证),以下是部分相关图片
双重验证相关
双重验证相关
选择开发者类型
补充说明:
Apple 开发者账号
- 个人账号:个人申请用于开发 Apple App 所使用的账号,仅限于个人使用,可以在 App Store 发布应用,申请比较容易,¥688.00/年 ($99.00/year)。
- 公司账号:以公司名义申请的开发者账号,用于公司内部的开发者共用,可以在 App Store 发布应用,申请流程相对麻烦,¥688.00/年 ($99.00/year)。
- 企业账号:一般是公司规模在 500 人以上的企业,用于内部测试、分发应用的账号,不能在 App Store 发布应用,申请流程相对麻烦,¥1988/($299.00/year)。
· 不同开发者账号步骤与所需资料
填写详细的注册信息,统一相关协议,通过验证审核之后再次点击继续进入支付页面,具体步骤参考图2-7:
填写注册信息
同意协议并且继续
注册等待验证通过
支付
再次登录
填写付费信息的页面
支付成功后,苹果会在48小时内对订单进行处理,之后可能会收到邮件要求到指定的页面上传身份证照片。
如果遇到任何问题,可以拨打苹果开发的售后服务电话4006701855。
补充说明:
·邓白氏DUNS的申请
邓白氏DUNS编码相当于公司在苹果公认的权威组织中注册了自己的身份证;可以点击相关链接先进行验证,没有可以直接申请。具体申请步骤可以参考百度经验:https://jingyan.baidu.com/article/27fa7326bd29df46f9271f10.html
3创建证书
使用APICloud平台开发iOS应用需要用到几个证书,下面的图为各个证书使用的地方。接下来为各个证书的创建教程。
4创建App ID
首先打开苹果开发网站,通过Account进入开发账户,如图:
登录成功后选择Certificates, Identifiers
APP Uploader APP开发助手-iOS APP上架到App Store的辅助工具,解决iOS APP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS证书申请,创建iOS开发者证书、iOS发布证书等各类证书,iOS开发者在Windows、Linux或Mac系统中上传IPA到App Store,简化iOS APP上架流程!在Windows pc中轻松快速上架你的APP。
Appuploader是一个非常好用的IPA上传发布工具,使用它可以辅助iOS软件的开发,可以很便捷的将app上传到AppStore,并且自带各种证书的申请,对于个人开发者来说很实用。只需输入证书名称,创建邮箱等信息即可创建证书,并且创建的证书,不绑定电脑。
App 开发助手可以直接在windows,linux或mac,不需要Mac,不需要钥匙串助手,只需输入证书的名称,邮箱和密码就可以创建,简单快速,并且申请的iOS证书可以不同电脑使用,证书协同无障碍,团队开发管理更高效。
来APICloud移动应用开发平台学习更多APP开app上架应用市场需要什么条件
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
iOS app上架总体流程:
1登录苹果开发者中心,注册开发者账号
如果你是第一次申请注册使用Apple ID登录苹果开发者网站,需要同意“苹果开发者协议”,提交请求,这个时候你的Apple ID 就已经成为了一个开发者的ID了。如图1-1:
苹果开发者中心网址:https://developer.apple.com/
同意苹果开发者协议并提交申请
2申请付费开发者,加入苹果开发计划
加入苹果开发者计划
开始注册
注册说明
补充说明:
双重验证相关
苹果新规定Apple ID需开启双重验证才能注册开发者账号,所以在加入开发者之前需要根据提示开启设备进行双重验证;验证方法采用登录电脑上的iCloud根据提示进行验证(或者其他设备,如登录手机进行双重验证),以下是部分相关图片
双重验证相关
双重验证相关
选择开发者类型
补充说明:
Apple 开发者账号
- 个人账号:个人申请用于开发 Apple App 所使用的账号,仅限于个人使用,可以在 App Store 发布应用,申请比较容易,¥688.00/年 ($99.00/year)。
- 公司账号:以公司名义申请的开发者账号,用于公司内部的开发者共用,可以在 App Store 发布应用,申请流程相对麻烦,¥688.00/年 ($99.00/year)。
- 企业账号:一般是公司规模在 500 人以上的企业,用于内部测试、分发应用的账号,不能在 App Store 发布应用,申请流程相对麻烦,¥1988/($299.00/year)。
· 不同开发者账号步骤与所需资料
填写详细的注册信息,统一相关协议,通过验证审核之后再次点击继续进入支付页面,具体步骤参考图2-7:
填写注册信息
同意协议并且继续
注册等待验证通过
支付
再次登录
填写付费信息的页面
支付成功后,苹果会在48小时内对订单进行处理,之后可能会收到邮件要求到指定的页面上传身份证照片。
如果遇到任何问题,可以拨打苹果开发的售后服务电话4006701855。
补充说明:
·邓白氏DUNS的申请
邓白氏DUNS编码相当于公司在苹果公认的权威组织中注册了自己的身份证;可以点击相关链接先进行验证,没有可以直接申请。具体申请步骤可以参考百度经验:https://jingyan.baidu.com/article/27fa7326bd29df46f9271f10.html
3创建证书
使用APICloud平台开发iOS应用需要用到几个证书,下面的图为各个证书使用的地方。接下来为各个证书的创建教程。
4创建App ID
首先打开苹果开发网站,通过Account进入开发账户,如图:
登录成功后选择Certificates, Identifiers

wap2app下拉刷新
> 支持局部刷新
> 全局刷新
原文地址wap2app下拉刷新
> 支持局部刷新
> 全局刷新
原文地址wap2app下拉刷新

如何优雅的接入邮件、短信及消息推送
在日常开发中,我们经常会需要发送邮件、短信、APP消息及任务(报警)通知等内容,按照现有开发规则,每个业务平台在需要发送此类消息时都需要重新对接一次相关平台,不仅会造成业务系统臃肿,而且费时费力,事倍功半,严重影响开发效率。
为了解决这个问题,我们特别开发了“开发者平台”,将程序开发中常用的功能进行整合,对外提供统一API,只需十几行代码即可实现相应功能,具体功能说明可参见下表:
功能 | 已对接平台 | 是否有API | 其他说明 |
---|---|---|---|
智能验证码 | 自研 | / | 支持效果统计及数据分析 |
短链接(二维活码) | 自研 | 暂无 | 支持效果统计及数据分析;可修改短链接的原始链接 |
邮件发送 | SMTP服务 | 有 | 支持邮件模板、支持效果统计及数据分析 |
短信发送 | 阿里云、腾讯云、华为云 | 有 | 设定好邮件模板后可一键切换平台;不同短信模板可使用不同平台 |
APP消息推送 | 个推(UniPush)、友盟推送、极光推送 | 有 | 无 |
任务(报警)通知推送 | 短信、邮件、企业微信群机器人、企业微信应用消息、钉钉群机器人 | 有 | 支持文字、图文、markdown等多种形式 |
广告管理 | 自定义图文广告 | / | 支持效果统计及数据分析;支持轮播、弹窗广告形式;同一页面可添加多个广告 |
更多实用功能开发中,不定期更新。
本平台可直接注册使用,同时支持私有化部署,如有疑问可咨询平台客服
平台地址:www.21ds.cn
在日常开发中,我们经常会需要发送邮件、短信、APP消息及任务(报警)通知等内容,按照现有开发规则,每个业务平台在需要发送此类消息时都需要重新对接一次相关平台,不仅会造成业务系统臃肿,而且费时费力,事倍功半,严重影响开发效率。
为了解决这个问题,我们特别开发了“开发者平台”,将程序开发中常用的功能进行整合,对外提供统一API,只需十几行代码即可实现相应功能,具体功能说明可参见下表:
功能 | 已对接平台 | 是否有API | 其他说明 |
---|---|---|---|
智能验证码 | 自研 | / | 支持效果统计及数据分析 |
短链接(二维活码) | 自研 | 暂无 | 支持效果统计及数据分析;可修改短链接的原始链接 |
邮件发送 | SMTP服务 | 有 | 支持邮件模板、支持效果统计及数据分析 |
短信发送 | 阿里云、腾讯云、华为云 | 有 | 设定好邮件模板后可一键切换平台;不同短信模板可使用不同平台 |
APP消息推送 | 个推(UniPush)、友盟推送、极光推送 | 有 | 无 |
任务(报警)通知推送 | 短信、邮件、企业微信群机器人、企业微信应用消息、钉钉群机器人 | 有 | 支持文字、图文、markdown等多种形式 |
广告管理 | 自定义图文广告 | / | 支持效果统计及数据分析;支持轮播、弹窗广告形式;同一页面可添加多个广告 |
更多实用功能开发中,不定期更新。
本平台可直接注册使用,同时支持私有化部署,如有疑问可咨询平台客服
平台地址:www.21ds.cn
收起阅读 »
打包ios应用所需的证书和证书profile文件的创建方法
苹果官方提供的方法,都需要mac电脑去完成,而很多使用H5开发的朋友们,只有windows电脑,没有mac电脑,那么有没有办法创建苹果的打包证书和上架苹果应用呢?
是可以的,我们这篇文章教会大家使用windows电脑创建ios证书:
一、首先,你需要一个苹果开发者账号,假如你还没有苹果开发者账号,你可以参考这篇文章先开通苹果开发者账号:
https://www.yunedit.com/xueyuan/jx/applereg
二、有了苹果开发者账号后,就可以登陆苹果开发者中心,进入Certificates菜单,开始生成证书:
三、创建过程中,选择ios distribution ad hoc and app store,类型,无论是真机测试还是上架,都是选择这个类型,千万别选了apple类型或dev类型。
四、创建的过程中,它会要求我们上传一个csr文件,如下图:
五、这个csr文件原本是需要通过mac电脑去生成,假如没有mac电脑,我们可以使用香蕉云编去生成:
https://www.yunedit.com
登录香蕉云编后,进入到创建ios证书的界面,创建csr文件,创建完后把这个csr文件下载到你本地的电脑上,如下图:
六、回到苹果开发者中心,上传这个csr文件,即可生成cer证书,然后将这个cer证书下载到你本地电脑上。
七、回到香蕉云编,上传这个cer文件,即可使用生成p12证书的功能,生成p12打包证书。
好了p12证书生成完了,那么证书profile文件又如何生成呢?
下面的步骤是生成Profile的步骤:
1、登录苹果开发者中心控制台,点击Identifiers,点击蓝色加号,创建一个appid,这个appid要跟你在hbuilder打包用的包名一致,假如已经创建,则跳过这一步。
2、点击profiles,开始创建描述文件,创建的时候选择app store类型,假如你选择的是ad hoc类型,则看第四步。
3、创建的过程中会要求我们选择第一步创建的appid:
4、假如你创建的是ad hoc类型的profile(假如你创建的是app store类型的profile则不需要这一步),则创建过程中,还需要提供测试手机的udid,你可以使用你的iphone手机,打开香蕉云编右上角获取手机udid的工具,获取手机的udid。
好了,就这么简单,就可以成功创建证书了。
苹果官方提供的方法,都需要mac电脑去完成,而很多使用H5开发的朋友们,只有windows电脑,没有mac电脑,那么有没有办法创建苹果的打包证书和上架苹果应用呢?
是可以的,我们这篇文章教会大家使用windows电脑创建ios证书:
一、首先,你需要一个苹果开发者账号,假如你还没有苹果开发者账号,你可以参考这篇文章先开通苹果开发者账号:
https://www.yunedit.com/xueyuan/jx/applereg
二、有了苹果开发者账号后,就可以登陆苹果开发者中心,进入Certificates菜单,开始生成证书:
三、创建过程中,选择ios distribution ad hoc and app store,类型,无论是真机测试还是上架,都是选择这个类型,千万别选了apple类型或dev类型。
四、创建的过程中,它会要求我们上传一个csr文件,如下图:
五、这个csr文件原本是需要通过mac电脑去生成,假如没有mac电脑,我们可以使用香蕉云编去生成:
https://www.yunedit.com
登录香蕉云编后,进入到创建ios证书的界面,创建csr文件,创建完后把这个csr文件下载到你本地的电脑上,如下图:
六、回到苹果开发者中心,上传这个csr文件,即可生成cer证书,然后将这个cer证书下载到你本地电脑上。
七、回到香蕉云编,上传这个cer文件,即可使用生成p12证书的功能,生成p12打包证书。
好了p12证书生成完了,那么证书profile文件又如何生成呢?
下面的步骤是生成Profile的步骤:
1、登录苹果开发者中心控制台,点击Identifiers,点击蓝色加号,创建一个appid,这个appid要跟你在hbuilder打包用的包名一致,假如已经创建,则跳过这一步。
2、点击profiles,开始创建描述文件,创建的时候选择app store类型,假如你选择的是ad hoc类型,则看第四步。
3、创建的过程中会要求我们选择第一步创建的appid:
4、假如你创建的是ad hoc类型的profile(假如你创建的是app store类型的profile则不需要这一步),则创建过程中,还需要提供测试手机的udid,你可以使用你的iphone手机,打开香蕉云编右上角获取手机udid的工具,获取手机的udid。
好了,就这么简单,就可以成功创建证书了。
收起阅读 »