微信回调地址 参数支付成功后回调方法怎么带自定义参数

IOS微信第三方支付onResp方法不被回调的解决办法 - 简书
IOS微信第三方支付onResp方法不被回调的解决办法
之前有一篇文章我在ShareSDK的社会化分享基础上,集成了IOS的微信和支付宝支付。
很久没有更新,这次IOS9.2和Xcode7.2之后,上次的demo可能出现了一些问题。这里统一进行一下更新
首先是关于关于IOS微信的支付分享或登录
成功调起客户端操作之后,返回你的应用之后onResp:方法不被执行的问题。//这里说明一下,上次的集成告诉大家在Appdelegate.m里加入如下两个方法,并完成对Wxi的delegate的设置。这两个方法在官方的文档上注明了IOS9.0之后废弃(但其实9.1好像也能用),不管怎样,如果你是Xcode7.2,或者IOS9.2的话,可能会遇见在微信客户端操作返回程序之后不能执行微信的onResp回调方法的问题,就是因为一下这两个方法被废弃掉了,所以我的新demo替换了一个新的方法在下面。就完美解决这个问题了(并不建议删除这两个方法,新方法是9.0以后的方法,可能系统低版本的用户不支持。所以我三种方法都留下了,如果有人发现不能都留下的话,请简信告诉我一下,再次谢过了)//被废弃的方法如下-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;-(BOOL)application:(UIApplication *)application openURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplicationannotation:(id)annotation;//替换的新方法改用方法为- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options;
这些更新都可以在这篇文章上的demo里看到,另外,新的demo里我还新增了IOS的三方分享和三方登录的集成。这样这个demo里就基本完成了三方支付、分享、登录的统一集成。 ,所有的集成方法和步骤我都写在readme那个word里了,如果还有其他问题欢迎在评论里问我,希望能帮到你们。
iOS程序猿一枚,渴求新知,乐于分享。?。共被编辑 4 次
微信支付成功但是没有走回调的方法(notify_url没有带参数,且能正常访问)
$input = new \WxPayUnifiedOrder();
$input-&SetBody("test");
$input-&SetAttach("test");
$input-&SetOut_trade_no(\WxPayConfig::MCHID.date("YmdHis"));
$input-&SetTotal_fee($price);
$input-&SetTime_start(date("YmdHis"));
$input-&SetTime_expire(date("YmdHis", time() + 600));
$input-&SetGoods_tag("test");
$input-&SetNotify_url("https://wfb12.s1.natapp.cc/weixinsdk/coupon/Home/AppCoupon/notify");
// $input-&SetNotify_url(".cn/Home/AppCoupon/notify");
// $input-&SetNotify_url("http://paysdk./example/notify.php");
$input-&SetTrade_type("JSAPI");
$input-&SetOpenid($openID);
transaction_id
//$input-&SetTransaction_id( $out_trade_no);
$order = $WxPayApi::unifiedOrder($input);
如题,微信支付能成功付款,但是没有走回调。。。折腾了很久,都是说带参数的原因。。可是我么有啊,补充下,我是小程序的微信支付,所以基于内网穿透生成外网https协议的域名进行本地调试的,小程序是不用设置支付目录的吧?关键是我支付能成功!就是不走回调!!
微信支付成功但是没有走回调的方法(notify_url没有带参数,且能正常访问)
$input = new \WxPayUnifiedOrder();
$input-&SetBody("test");
$input-&SetAttach("test");
$input-&SetOut_trade_no(\WxPayConfig::MCHID.date("YmdHis"));
$input-&SetTotal_fee($price);
$input-&SetTime_start(date("YmdHis"));
$input-&SetTime_expire(date("YmdHis", time() + 600));
$input-&SetGoods_tag("test");
$input-&SetNotify_url("https://wfb12.s1.natapp.cc/weixinsdk/coupon/Home/AppCoupon/notify");
// $input-&SetNotify_url(".cn/Home/AppCoupon/notify");
// $input-&SetNotify_url("http://paysdk./example/notify.php");
$input-&SetTrade_type("JSAPI");
$input-&SetOpenid($openID);
transaction_id
//$input-&SetTransaction_id( $out_trade_no);
$order = $WxPayApi::unifiedOrder($input);
如题,微信支付能成功付款,但是没有走回调。。。折腾了很久,都是说带参数的原因。。可是我么有啊,补充下,我是小程序的微信支付,所以用的https,用的natapp进行本地调试的,小程序是不用设置支付目录的吧?关键是我支付能成功!就是不走回调!!
微信支付成功但是没有走回调的方法(notify_url没有带参数,且能正常访问)
$input = new \WxPayUnifiedOrder();
$input-&SetBody("test");
$input-&SetAttach("test");
$input-&SetOut_trade_no(\WxPayConfig::MCHID.date("YmdHis"));
$input-&SetTotal_fee($price);
$input-&SetTime_start(date("YmdHis"));
$input-&SetTime_expire(date("YmdHis", time() + 600));
$input-&SetGoods_tag("test");
$input-&SetNotify_url("https://wfb12.s1.natapp.cc/weixinsdk/coupon/Home/AppCoupon/notify");
// $input-&SetNotify_url(".cn/Home/AppCoupon/notify");
// $input-&SetNotify_url("http://paysdk./example/notify.php");
$input-&SetTrade_type("JSAPI");
$input-&SetOpenid($openID);
transaction_id
//$input-&SetTransaction_id( $out_trade_no);
$order = $WxPayApi::unifiedOrder($input);
如题,微信支付能成功付款,但是没有走回调。。。折腾了很久,都是说带参数的原因。。可是我么有啊
微信支付成功但是没有走回调的方法(notify_url没有带参数,且能正常访问)
$input-&SetNotify_url("https://wfb1.s1.natapp.cc/Home/AppCoupon/notify");如题,微信支付能成功付款,但是没有走回调。。。折腾了很久,都是说带参数的原因。。可是我么有啊
我要该,理由是:客服:95017
APP端开发步骤
IOS开发要点说明
以下项目开发环境以Xcode6.0,运行环境为IOS7.0为例,说明其开发中需要的操作。
1、项目设置APPID
商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID。如图8.7标红位置所示。
2、注册APPID
商户APP工程中引入微信lib库和头文件,调用API前,需要先向微信注册您的APPID,代码如下:
[WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];
3、调起支付
商户服务器生成支付订单,先调用【】生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码:
PayReq *request = [[[PayReq alloc] init] autorelease];
request.partnerId = @"";
request.prepayId= @"fc314aa427";
request.package = @"Sign=WXPay";
request.nonceStr= @"a462b76eed6e13c64b4fd1c";
request.timeStamp= @"";
request.sign= @"DD2B03AD8CB16E7A256";
[WXApi sendReq:request];
注意:该sign生成字段名列表见
4、支付结果回调
照微信SDK Sample,在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意 一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:
-(void)onResp:(BaseResp*)resp{
if ([respisKindOfClass:[PayRespclass]]){
PayResp*response=(PayResp*)
switch(response.errCode){
caseWXSuccess:
			//服务器端查询支付通知或查询API返回的结果再提示成功
			NSlog(@&支付成功&);
	default:
	NSlog(@&支付失败,retcode=%d&,resp.errCode);
回调中errCode值列表:
展示成功页面
可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
无需处理。发生场景:用户不支付了,点击取消,返回APP。
Android开发要点说明
1、后台设置
商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】中的栏目【管理中心 / 修改应用 / 修改开发信息】里面,如图8.8红框内所示。
应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package="net.sourceforge.simcpux"。
应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串,如图8.9所示,绿色串即应用签名。签名工具下载地址
2、注册APPID
商户APP工程中引入微信JAR包,调用API前,需要先向微信注册您的APPID,代码如下:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
msgApi.registerApp("wxd930ea5d5a258f4f");
3、调起支付
商户服务器生成支付订单,先调用统一下单API(详见第7节)生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码:
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "";
request.prepayId= "fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "f";
request.timeStamp= "";
request.sign= "7FFECB600D810D2D8F28BC2811827B";
api.sendReq(request);
注意:该sign生成字段名列表见
4、支付结果回调
参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:
publicvoidonResp(BaseRespresp){
	if(resp.getType()==MAND_PAY_BY_WX){
		Log.d(TAG,&onPayFinish,errCode=&+resp.errCode);
		AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
		builder.setTitle(R.string.app_tip);
回调中errCode值列表:
展示成功页面
可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
无需处理。发生场景:用户不支付了,点击取消,返回APP。

我要回帖

更多关于 微信网页授权回调参数 的文章

 

随机推荐