1. 程式人生 > >APP端webview內微信H5支付解決方案

APP端webview內微信H5支付解決方案

微信已經官方支援微信外部瀏覽器的H5微信支付。但是如果是從webview中呼叫H5微信支付的話。 ios平臺上支付完成後會跳到外部的瀏覽器,而不是停留在app裡面。

關於這個問題。 就需要我們在服務端模擬請求H5微信支付的中間環節,直接拿到支付地址。這樣能避免ios webivew內微信支付成功後跳外部瀏覽器。

下面是服務端核心程式碼:

$input = new \WxPayUnifiedOrder();
$input->SetBody($i['product_name']); //商品描述
$input->SetAttach('abc'); //附加資料,在查詢API和支付通知中原樣返回
$input->SetOut_trade_no($i['qqes_order'
]); //要求32個字元內,只能是數字、大小寫字母_-|*@ $input->SetTotal_fee($i['fee'] * 100); //訂單總金額,單位為分 $input->SetNotify_url($this->notifyUrl); $input->SetTrade_type("MWEB"); //網頁版 $order = \WxPayApi::unifiedOrder($input); if( ! isset($order['mweb_url']) ){ throw new SdkException('微信統一下單失敗'); } $payUrl = $order['mweb_url'
]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $payUrl); if (strpos($payUrl, 'https') === 0) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); } $headers['CLIENT-IP'] = $_SERVER['REMOTE_ADDR']; $headers['X-FORWARDED-FOR'] = $_SERVER['REMOTE_ADDR'
]; $headerArr = array(); foreach( $headers as $n => $v ) { $headerArr[] = $n . ':' . $v; } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); //構造IP curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); // 連線超時(秒) //微信那邊填的微信授權域 curl_setopt ($ch, CURLOPT_REFERER, 'http://www.example.com' ); curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 執行超時(秒) $outPut = curl_exec($ch); if($outPut === false){ echo curl_error($ch);die; } curl_close($ch); //匹配出支付連結 preg_match('/weixin(.*)"/', $outPut, $match); if( ! isset($match[1]) ){ throw new SdkException('無法獲取支付連結:' . $outPut); } $clientPayUrl = 'weixin' . $match[1]; header('Location:' . $clientPayUrl);

服務端處理完成後,直接跳轉從定向到支付最終url。 然後app端攔截這個url吊起微信支付即可。

另外:參照http://www.vccoo.com/v/516uk8

相關推薦

APPwebviewH5支付解決方案

微信已經官方支援微信外部瀏覽器的H5微信支付。但是如果是從webview中呼叫H5微信支付的話。 ios平臺上支付完成後會跳到外部的瀏覽器,而不是停留在app裡面。關於這個問題。 就需要我們在服務端模擬請求H5微信支付的中間環節,直接拿到支付地址。這樣能避免ios webiv

android webview 呼叫 h5 支付方式

參考網址:http://www.2cto.com/kf/201605/505727.html http://blog.csdn.net/u010940300/article/details/51426874 最終實現: 在webview 的 setWebViewCl

H5支付開發全過程(除以外的瀏覽器)

app 獲取ip getenv 過程 comm ati psi 初始 cli 前言:網上都是~ 呵呵 自己搞 只要花時間 多問客服總會有的 只說程序不說準備工作 自己ID 或者秘鑰都準備好了 寫的有點兒亂 可以把所有的方法 放在一個文件中調用 public funct

***公眾號支付+H5支付+掃碼支付+小程序支付+APP支付解決方案總結

ati asc alt creat chapter edit 隨機字符串 glob 測試 最近負責的一些項目開發,都用到了微信支付(微信公眾號支付、微信H5支付、微信掃碼支付、APP微信支付)。在開發的過程中,在調試支付的過程中,或多或少都遇到了一些問題,今天總結下,分享,

關於公眾號支付 H5支付APP支付的問題 (PHP)TP+VUE

話不多說 直接上原始碼 在寫支付之前一定要確定好微信要求配置的相關回調域名 安全支付域名還有雜七雜八的哪些地址都準備好了 要不然是沒法實現的 微信公眾平臺 微信商戶平臺 還有開發者平臺 什麼的 這點比較噁心 1.微信公眾號支付 公眾號支付和H5支付最大的不同就在於公眾號支付使用者有ope

H5支付問題(前端部分)(附jssdk使用方法)

微信公眾號支付(內附jssdk使用方法)    微信內H5發起支付一共有兩種方法:    1.呼叫微信內建js物件 WeixinJSBridge 發起支付具體方法為 WeixinJSBridge.invoke( 'getBrandWCPayRequest',

通過user-agent判斷h5頁面是在哪個手機App(QQ、支付寶)下開啟的

function getAppClient(){   var ua = navigator.userAgent.toLowerCase();   if(ua.match(/MicroMessenger/i)=="micromessenger") {   return "weixin";   }

關於使用webView調起h5支付的問題

最近根據公司專案需求 要在android內支援微信h5的支付功能,一時間就想到用webView直接調起。所以很快試了一下,用簡單的幾行程式碼就實現了這個需求。但是偶然間拿到一部android 7.0系統的手機,結果在測試過程中發現總是調不起來微信的api,搞了好半天不知道什

H5支付 提示"網絡環境未能通過安全驗證,請稍後再試"

微信 h5 支付 按照官方https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4#接入微信的H5支付,提示“網絡環境未能通過安全驗證,請稍後再試”,經排查發現服務器有前端機子,原先獲取IP的方法有誤,不能正確獲取客戶的IP。更改獲取IP

h5支付demoH5支付demo非瀏覽器支付demowap支付

demo == tox tex h5支付 esp alt tsig openid 一、首先先確定H5支付權限已經申請!(需要微信h5支付demo的可以加 851 488 243 備註:h5支付) 二、開發流程 1、用戶在商戶側完成下單,使用微信支付進行支付 2、由商戶後臺向

H5支付,從第三方手機瀏覽器中直接打開支付頁面

pan 兩個 add field out 字典 註意 cti 返回 首先在商戶平臺通開H5支付功能,然後幫後綁定,支付完成之後需要跳轉的地址,開通之後就可以開發H5支付; 首先是簽名,臥槽,說到這個就想罵人, 官方文檔的解說;文科生哪能看得懂什麽是集合; 下面就來簽名:

h5支付

ref 單位 tps ech echo info str name ini <?php const APPID = ‘‘; //受理商ID,身份標識 const MCHID = ‘‘; //商戶支付密鑰Key。審

H5支付完整版含PHP回撥頁面

注意事項: 一,微信H5支付只能用在手機瀏覽器中,比如百度瀏覽器,UC瀏覽器等,不可以用在微信中,微信中只可以使用公眾號支付.要特別注意. 二,如果你的h5手機版網站加殼打包封裝成了APP,根據我們的測試,也可以使用微信h5支付.不過.據微信官方說,可能會提示商家引數格式有誤,請聯絡商家解決

JavaH5支付實際例子

最近看過不少微信H5支付的例子,我是根據這個網址來配置的:https://blog.csdn.net/leigelg/article/details/80456758 這裡已經說的很明白,就是在支付的時候老是提示“網路環境未能通過安全驗證,請稍後重試”後來發現真是IP地址問題,這是我實際專案

H5支付開發(maven倉庫版)

官方文件:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_1 開發之前確認開通了H5支付功能 一、安裝微信sdk  二、建立config類 package com.xiuchefang.config; impo

java開發記錄-H5支付

一點點關於微信H5支付開發的總結. 接入成功後就可以進行程式碼設計啦. 此次測試開發是在springboot環境下完成的,下面列出微信支付用到的相關依賴: <dependency> <groupId>com.g

H5支付demo

首先我們必須得在微信公眾平臺和微信商業平臺那邊配置好相關配置 1、註冊微信服務號,開通微信支付許可權繫結微信商業平臺(這個具體怎麼操作我就不說了) 2、獲取應用(公眾號)appid、應用(公眾號)祕鑰、商戶號、商戶API祕鑰這四個配置資訊 3、微信商業平臺開通H5支付許可權,配置支付域名(是要ICP備案

Java整合H5支付/支付寶手機網站支付

微信H5支付:1,微信外部H5支付:名詞解釋:就是在自己的H5網站頁面裡呼叫微信支付功能,注意,這裡只能是在微信外部支付,在微信內開啟網站是無法支付的,要另外使用微信公眾號支付呼叫微信H5支付介面前提條件:1,註冊公眾號並且通過認證2,在公眾號裡申請微信支付,成為商戶號3,在

java實現h5支付

微信h5支付需要在微信商戶平臺-》產品中心開通h5支付。 官網提供的開發文件中需要的引數: h5支付主要是scene_info中的引數wap_url必須是可以訪問到的地址。spbill_create_ip的獲取必須和調起微信支付的ip一致。

H5支付(公司專案筆記)

1.跳轉後臺 mui.openWindow({ url: "後臺網址PayH5.php?payMoney=" + n + "&buyContent=" + buyContent + "&uid=" + uid, wa