支付--微信APP
来源:互联网 发布:多益网络账号登陆 编辑:程序博客网 时间:2024/04/30 08:04
微信APP支付同公众号支付调用的接口一样,部分参数不一样,需要特别注意。
相关签名算法实现、随机数生成、数组XML转换、curl发送post请求可参看上一篇博客《支付-微信公众号》。
统一下单接口:
public function prePay($body,$userIp,$orderNo, $price){
$postData = [
"appid" => self::OPEN_ID,
"mch_id" => self::MCH_ID,
"nonce_str" => self::getNonceStr(),
"body" => $body,
"out_trade_no" => $orderNo,
"total_fee" => (int)($price*100),//微信以分为单位
"spbill_create_ip" => $userIp,
"notify_url" => self::notify_url,
"trade_type" => "APP"
];
$postData["sign"] = self::getSign($postData, self::APP_KEY);
$postData = self::arrayToXml($postData);
$response = self::xmlToArray(self::curlPost(self::API_UNIFIED_ORDER, $postData));
if (isset($response["return_code"]) && $response["return_code"] == "SUCCESS"){
if ($response["result_code"] == "SUCCESS"){
$res = [
"prepayid" => $response["prepay_id"],
"partnerid" => self::MCH_ID,
"appid" => self::OPEN_ID,
"package" => "Sign=WXpay",
"noncestr" => self::getNonceStr(),
"timestamp" => time()
];
$res["sign"] = self::getSign($res, self::APP_KEY);
return $res;//app端调起支付所需参数
}
}
return [];
}
调起微信APP支付所需的参数中,要特别注意package参数,APP支付固定写成“Sign=WXpay”,而不是公众号支付时的“prepay_id=***”,官方文档上示例是“Sign=WXPay”,但似乎在ios会出问题,反正写成“Sign=WXpay”能调起。
关单接口、查询接口、异步通知接口等等,同公众号支付基本无差别,传入对应参数就可以了,注意app支付和公众号支付用的参数appid、mchid之类的是不同的,要分别使用开放平台和公众平台给的值
- 支付--微信APP支付
- 微信支付app
- 微信支付app
- 微信APP支付
- app微信支付
- APP微信支付
- app微信支付
- 微信APP支付
- 支付--微信APP
- 微信APP支付
- 微信app支付
- 微信APP支付
- 微信APP支付
- APP微信支付集成
- 微信app支付问题
- 微信APP支付填坑记
- 微信支付 app 服务器
- 微信APP支付 C#
- 线程中Lock的使用
- NVIDIA SASS 指令集 之 LDG
- 学习shell script
- Python常用模块++OS(操作目录,执行系统命令)
- 话说,终于搞定了在一套ubuntu里既能编译px4又能编译apm的问题
- 支付--微信APP
- 医院CRM客户关系管理系统
- Mysql批量插入
- loadrunner负载生成器;
- android的SystemProperties ro变量的使用
- 微信公众号支付流程
- 3.1_使用渐变色及图案来填充文本
- 解析 神奇的 Object.defineProperty
- KEIL中无IAP或者STC芯片型号怎么办