最近模板兔在给客户开发wordpress百度小程序,是基于modown主题与erphpdown插件涉及到百度支付,下面给出对接支付的具体代码供大家参考:
小程序端代码:
swan.request({
url: app.globalData.appUrl,
data: {
***: app.globalData.appToken,
action: 'user',
page: "recharge.bd.do",
userid: swan.getStorageSync('UserId'),
ice_money: that.data.inputRechargeMoney
},
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
swan.hideLoading();
//console.log(res.data);
if (res.data.error == '0') {
swan.requestPolymerPayment({
orderInfo: res.data.bdata,
success(res) {
app.globalData.userBackFlush = 1;
swan.showModal({
title: '温馨提示',
content: '充值成功!',
confirmText: '好的',
showCancel: false,
success(res) {
if (res.confirm) {
swan.navigateBack({
delta: 1
});
}
}
});
},
fail(res) {
swan.showToast({
title: '支付失败:'+res.errMsg,
icon: 'none',
duration: 2000
});
}
});
} else {
swan.showToast({
title: res.data.msg,
icon: 'none',
duration: 2000
});
}
},
fail: function () {
swan.showToast({
title: '提交失败',
icon: 'none',
duration: 2000
});
}
});
服务端部分代码:
$price = esc_sql(trim($_POST['ice_money']));
if($price){
require_once ERPHPAPP_PATH."/pay/baidu/api.php";
$out_trade_no = date("ymdhis").mt_rand(100,999).mt_rand(100,999);
$subject = get_bloginfo('name').'订单['.get_the_author_meta( 'user_login', $userid ).']';
$erphp_order_title = get_option('erphp_order_title');
if($erphp_order_title){
$subject = $erphp_order_title;
}
***
$privateKey = get_option("erphpapp_bdappsign");
$data = [
'appKey' => get_option("erphpapp_bdappkey"), // 支付能力开通后分配的支付appKey,用以表示应用身份的唯一ID,在应用审核通过后进行分配,一经分配后不会发生更改,来唯一确定一个应用
'dealId' => get_option("erphpapp_bdappdealid"), // 跳转百度收银台支付必带参数之一,是百度收银台的财务结算凭证,与账号绑定的结算协议一一对应,每笔交易将结算到dealId对应的协议主体
'tpOrderId' => $out_trade_no, // 商户平台自己记录的订单ID
'totalAmount' => $price*100, // 订单总金额,以分为单位
];
$data['rsaSign'] = erphpapp_bdapp_sign($data,$privateKey); // 对appKey+dealId+tpOrderId+totalAmount进行RSA加密后的签名,防止订单被伪造
$data['dealTitle'] = $subject; // 订单的名称
$data['signFieldsRange'] = 1; // 固定值1
$bizInfoArr = [
"tpData" => [
"appKey" => $data['appKey'],
"dealId" => $data['dealId'],
"tpOrderId" => $data['tpOrderId'],
"rsaSign" => $data['rsaSign'],
"totalAmount" => $data['totalAmount'],
"returnData"=> []
],
];
$data['bizInfo'] = json_encode($bizInfoArr); // 订单详细信息,需要是一个可解析为JSON Object的字符串 可以为空 {}
echo json_encode(array("error"=>0,"msg"=>"","bdata"=>$data));
}


0 个评论